simple admin list

This commit is contained in:
kremsy
2014-01-31 14:19:39 +01:00
committed by Steffen Schröder
parent 7a15aef94d
commit c0d084a037
3 changed files with 115 additions and 26 deletions

View File

@ -315,7 +315,7 @@ class PlayerList implements ManialinkPageAnswerListener, CallbackListener, Timer
// Show advanced window
if ($this->playersListShown[$player->login] && $this->playersListShown[$player->login] != self::SHOWN_MAIN_WINDOW) {
$frame = $this->showAdvancedPlayerWidget($this->playersListShown[$player->login]);
$frame = $this->showAdvancedPlayerWidget($player, $this->playersListShown[$player->login]);
$maniaLink->add($frame);
}
@ -343,7 +343,7 @@ class PlayerList implements ManialinkPageAnswerListener, CallbackListener, Timer
* @param $login
* @return Frame
*/
public function showAdvancedPlayerWidget($login) {
public function showAdvancedPlayerWidget($admin, $login) {
$player = $this->maniaControl->playerManager->getPlayer($login);
$width = $this->maniaControl->manialinkManager->styleManager->getListWidgetsWidth();
$height = $this->maniaControl->manialinkManager->styleManager->getListWidgetsHeight();
@ -518,7 +518,7 @@ class PlayerList implements ManialinkPageAnswerListener, CallbackListener, Timer
$label->setText("Set Moderator");
$label->setTextColor($textColor);
if ($this->maniaControl->authenticationManager->checkRight($player, AuthenticationManager::AUTH_LEVEL_MODERATOR)) {
if ($player->authLevel > 0 && $this->maniaControl->authenticationManager->checkRight($admin, $player->authLevel + 1)) {
$y -= 5;
// Revoke Rights
$quad = clone $quad;

View File

@ -253,7 +253,7 @@ class PlayerManager implements CallbackListener {
*/
public function getPlayer($login) {
if (!isset($this->players[$login])) {
return null;
return $this->getPlayerFromDatabaseByLogin($login);
}
return $this->players[$login];
}
@ -313,6 +313,10 @@ class PlayerManager implements CallbackListener {
$row = $result->fetch_object();
$result->close();
if (!isset($row)) {
return null;
}
$player = new Player(false);
$player->index = $playerIndex;
$player->login = $row->login;
@ -324,6 +328,39 @@ class PlayerManager implements CallbackListener {
}
/**
* Get's a Player out of the database
*
* @param $playerIndex
* @return Player $player
*/
private function getPlayerFromDatabaseByLogin($playerLogin) {
$mysqli = $this->maniaControl->database->mysqli;
$query = "SELECT * FROM `" . self::TABLE_PLAYERS . "` WHERE `login` LIKE '" . $mysqli->escape_string($playerLogin) . "';";
$result = $mysqli->query($query);
if (!$result) {
trigger_error($mysqli->error);
return null;
}
$row = $result->fetch_object();
$result->close();
if (!isset($row)) {
return null;
}
$player = new Player(false);
$player->index = $row->index;
$player->login = $row->login;
$player->nickname = $row->nickname;
$player->path = $row->path;
$player->authLevel = $row->authLevel;
return $player;
}
/**
* Save player in Database and fill up Object Properties
*