ensure to have right to perform actions on the map list
This commit is contained in:
parent
bff16f6441
commit
bad5ecd70f
@ -111,6 +111,8 @@ class MapList implements ManialinkPageAnswerListener, CallbackListener {
|
|||||||
*/
|
*/
|
||||||
public function checkUpdates(array $chatCallback, Player $player) {
|
public function checkUpdates(array $chatCallback, Player $player) {
|
||||||
// Update Mx Infos
|
// Update Mx Infos
|
||||||
|
if (!$this->maniaControl->getAuthenticationManager()->checkPermission($player, MapManager::SETTING_PERMISSION_CHECK_UPDATE)) return;
|
||||||
|
|
||||||
$this->maniaControl->getMapManager()->getMXManager()->fetchManiaExchangeMapInformation();
|
$this->maniaControl->getMapManager()->getMXManager()->fetchManiaExchangeMapInformation();
|
||||||
|
|
||||||
// Reshow the Maplist
|
// Reshow the Maplist
|
||||||
@ -340,7 +342,7 @@ class MapList implements ManialinkPageAnswerListener, CallbackListener {
|
|||||||
$description = $map->getEscapedName() . ' is on Map-Queue Position: ' . $queuedMaps[$map->uid];
|
$description = $map->getEscapedName() . ' is on Map-Queue Position: ' . $queuedMaps[$map->uid];
|
||||||
$label->addTooltipLabelFeature($descriptionLabel, $description);
|
$label->addTooltipLabelFeature($descriptionLabel, $description);
|
||||||
}
|
}
|
||||||
} else {
|
} else if ($this->maniaControl->getAuthenticationManager()->checkPermission($player, MapQueue::SETTING_PERMISSION_ADD_TO_QUEUE)) {
|
||||||
// Map-Queue-Map-Button
|
// Map-Queue-Map-Button
|
||||||
$queueLabel = new Label_Button();
|
$queueLabel = new Label_Button();
|
||||||
$mapFrame->addChild($queueLabel);
|
$mapFrame->addChild($queueLabel);
|
||||||
@ -584,6 +586,8 @@ class MapList implements ManialinkPageAnswerListener, CallbackListener {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case self::ACTION_SWITCH_MAP:
|
case self::ACTION_SWITCH_MAP:
|
||||||
|
if (!$this->maniaControl->getAuthenticationManager()->checkPermission($player, MapManager::SETTING_PERMISSION_SKIP_MAP)) return;
|
||||||
|
|
||||||
// Don't queue on Map-Change
|
// Don't queue on Map-Change
|
||||||
$this->maniaControl->getMapManager()->getMapQueue()->dontQueueNextMapChange();
|
$this->maniaControl->getMapManager()->getMapQueue()->dontQueueNextMapChange();
|
||||||
try {
|
try {
|
||||||
|
@ -195,6 +195,8 @@ class MapManager implements CallbackListener, CommunicationListener, UsageInform
|
|||||||
* @param string $uid
|
* @param string $uid
|
||||||
*/
|
*/
|
||||||
public function updateMap($admin, $uid) {
|
public function updateMap($admin, $uid) {
|
||||||
|
if (!$this->maniaControl->getAuthenticationManager()->checkPermission($admin, self::SETTING_PERMISSION_ADD_MAP)) return;
|
||||||
|
|
||||||
$this->updateMapTimestamp($uid);
|
$this->updateMapTimestamp($uid);
|
||||||
|
|
||||||
if (!isset($uid) || !isset($this->maps[$uid])) {
|
if (!isset($uid) || !isset($this->maps[$uid])) {
|
||||||
@ -272,6 +274,8 @@ class MapManager implements CallbackListener, CommunicationListener, UsageInform
|
|||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
public function removeMap($admin, $uid, $eraseFile = false, $message = true) {
|
public function removeMap($admin, $uid, $eraseFile = false, $message = true) {
|
||||||
|
if (!$this->maniaControl->getAuthenticationManager()->checkPermission($admin, self::SETTING_PERMISSION_REMOVE_MAP)) return;
|
||||||
|
|
||||||
if (!isset($this->maps[$uid])) {
|
if (!isset($this->maps[$uid])) {
|
||||||
if ($admin) {
|
if ($admin) {
|
||||||
$this->maniaControl->getChat()->sendError('Map does not exist!', $admin);
|
$this->maniaControl->getChat()->sendError('Map does not exist!', $admin);
|
||||||
|
@ -36,6 +36,7 @@ class MapQueue implements CallbackListener, CommandListener, UsageInformationAbl
|
|||||||
const SETTING_MAPLIMIT_ADMIN = 'Maximum maps per admin (Admin+) in the Map-Queue (-1 = unlimited)';
|
const SETTING_MAPLIMIT_ADMIN = 'Maximum maps per admin (Admin+) in the Map-Queue (-1 = unlimited)';
|
||||||
const SETTING_MESSAGE_FORMAT = 'Message Format';
|
const SETTING_MESSAGE_FORMAT = 'Message Format';
|
||||||
const SETTING_BUFFERSIZE = 'Size of the Map-Queue buffer (recently played maps)';
|
const SETTING_BUFFERSIZE = 'Size of the Map-Queue buffer (recently played maps)';
|
||||||
|
const SETTING_PERMISSION_ADD_TO_QUEUE = 'Add map to queue';
|
||||||
const SETTING_PERMISSION_CLEAR_MAPQUEUE = 'Clear MapQueue';
|
const SETTING_PERMISSION_CLEAR_MAPQUEUE = 'Clear MapQueue';
|
||||||
const SETTING_PERMISSION_QUEUE_BUFFER = 'Queue maps in buffer';
|
const SETTING_PERMISSION_QUEUE_BUFFER = 'Queue maps in buffer';
|
||||||
|
|
||||||
@ -74,6 +75,7 @@ class MapQueue implements CallbackListener, CommandListener, UsageInformationAbl
|
|||||||
$this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_BUFFERSIZE, 10);
|
$this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_BUFFERSIZE, 10);
|
||||||
|
|
||||||
// Permissions
|
// Permissions
|
||||||
|
$this->maniaControl->getAuthenticationManager()->definePermissionLevel(self::SETTING_PERMISSION_ADD_TO_QUEUE, AuthenticationManager::AUTH_LEVEL_PLAYER, AuthenticationManager::AUTH_LEVEL_PLAYER);
|
||||||
$this->maniaControl->getAuthenticationManager()->definePermissionLevel(self::SETTING_PERMISSION_CLEAR_MAPQUEUE, AuthenticationManager::AUTH_LEVEL_MODERATOR);
|
$this->maniaControl->getAuthenticationManager()->definePermissionLevel(self::SETTING_PERMISSION_CLEAR_MAPQUEUE, AuthenticationManager::AUTH_LEVEL_MODERATOR);
|
||||||
$this->maniaControl->getAuthenticationManager()->definePermissionLevel(self::SETTING_PERMISSION_QUEUE_BUFFER, AuthenticationManager::AUTH_LEVEL_ADMIN);
|
$this->maniaControl->getAuthenticationManager()->definePermissionLevel(self::SETTING_PERMISSION_QUEUE_BUFFER, AuthenticationManager::AUTH_LEVEL_ADMIN);
|
||||||
|
|
||||||
@ -283,6 +285,8 @@ class MapQueue implements CallbackListener, CommandListener, UsageInformationAbl
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!$this->maniaControl->getAuthenticationManager()->checkPermission($player, self::SETTING_PERMISSION_ADD_TO_QUEUE)) return;
|
||||||
|
|
||||||
// Check if the Player is muted
|
// Check if the Player is muted
|
||||||
if ($player->isMuted()) {
|
if ($player->isMuted()) {
|
||||||
$this->maniaControl->getChat()->sendError('Muted Players are not allowed to queue a map.', $player);
|
$this->maniaControl->getChat()->sendError('Muted Players are not allowed to queue a map.', $player);
|
||||||
@ -369,6 +373,10 @@ class MapQueue implements CallbackListener, CommandListener, UsageInformationAbl
|
|||||||
if (!isset($this->queuedMaps[$uid])) {
|
if (!isset($this->queuedMaps[$uid])) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$queuer = $this->maniaControl->getMapManager()->getMapQueue()->getQueuer($uid);
|
||||||
|
if (($queuer === null || $queuer->login !== $player->login) && !$this->maniaControl->getAuthenticationManager()->checkPermission($player, self::SETTING_PERMISSION_CLEAR_MAPQUEUE)) return;
|
||||||
|
|
||||||
/** @var Map $map */
|
/** @var Map $map */
|
||||||
$map = $this->queuedMaps[$uid][1];
|
$map = $this->queuedMaps[$uid][1];
|
||||||
unset($this->queuedMaps[$uid]);
|
unset($this->queuedMaps[$uid]);
|
||||||
|
Loading…
Reference in New Issue
Block a user