From 70f6a1ae78d28de0fd5cfa273d3763b1486f3d51 Mon Sep 17 00:00:00 2001 From: doitux Date: Mon, 25 Feb 2013 23:21:59 +0100 Subject: [PATCH] check for incorrect admin actions --- src/gui/qt/gamelobbydialog/gamelobbydialogimpl.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/gui/qt/gamelobbydialog/gamelobbydialogimpl.cpp b/src/gui/qt/gamelobbydialog/gamelobbydialogimpl.cpp index d54aefab..bf6d1b2f 100644 --- a/src/gui/qt/gamelobbydialog/gamelobbydialogimpl.cpp +++ b/src/gui/qt/gamelobbydialog/gamelobbydialogimpl.cpp @@ -1683,7 +1683,6 @@ void gameLobbyDialogImpl::showNickListContextMenu(QPoint p) nickListIgnorePlayerAction->setText(tr("Ignore player ...")); } - unsigned gameIdOfPlayer = mySession->getGameIdOfPlayer(playerUid); QString playerInGameInfoString; if(gameIdOfPlayer) { @@ -1693,6 +1692,9 @@ void gameLobbyDialogImpl::showNickListContextMenu(QPoint p) } nickListPlayerInGameInfo->setText(playerInGameInfoString); + //prevent admin to total kickban himself + if(playerUid == mySession->getClientUniquePlayerId()) { nickListAdminTotalKickBan->setDisabled(true); } + else { nickListAdminTotalKickBan->setEnabled(true); } // check for admin and remove admin actions for non-admins if(!mySession->getClientPlayerInfo(mySession->getClientUniquePlayerId()).isAdmin) { @@ -1710,7 +1712,12 @@ void gameLobbyDialogImpl::showGameListContextMenu(QPoint p) { if(myGameListModel->rowCount() && myGameListSelectionModel->currentIndex().isValid()) { - // check for admin and remove admin actions for non-admins + assert(mySession); + unsigned selectedGameId = myGameListSelectionModel->selectedRows().first().data(Qt::UserRole).toUInt(); + if(selectedGameId == mySession->getClientCurrentGameId()) { gameListAdminCloseGame->setDisabled(true); } + else { gameListAdminCloseGame->setEnabled(true); } + +// check for admin and remove admin actions for non-admins if(!mySession->getClientPlayerInfo(mySession->getClientUniquePlayerId()).isAdmin) { gameListContextMenu->removeAction(gameListAdminSubMenu->menuAction()); }