From 15343d9bb074823e9b631cef873b7ba93663fad2 Mon Sep 17 00:00:00 2001 From: Spp Date: Mon, 25 Feb 2013 10:47:50 +0100 Subject: Core/RBAC: Remove unnecessary header includes from other header files --- src/server/game/Server/WorldSession.cpp | 1 + src/server/game/Server/WorldSession.h | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) (limited to 'src/server/game/Server') diff --git a/src/server/game/Server/WorldSession.cpp b/src/server/game/Server/WorldSession.cpp index 610047dac2f..1e36f342712 100644 --- a/src/server/game/Server/WorldSession.cpp +++ b/src/server/game/Server/WorldSession.cpp @@ -24,6 +24,7 @@ #include "Config.h" #include "Common.h" #include "DatabaseEnv.h" +#include "AccountMgr.h" #include "Log.h" #include "Opcodes.h" #include "WorldPacket.h" diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h index 42242e93742..20fa7d9335d 100644 --- a/src/server/game/Server/WorldSession.h +++ b/src/server/game/Server/WorldSession.h @@ -24,7 +24,6 @@ #define __WORLDSESSION_H #include "Common.h" -#include "AccountMgr.h" #include "SharedDefines.h" #include "AddonMgr.h" #include "DatabaseEnv.h" @@ -40,6 +39,7 @@ class LoginQueryHolder; class Object; class Player; class Quest; +class RBACData; class SpellCastTargets; class Unit; class Warden; -- cgit v1.2.3 From e99dd159152dcb8093134f025e29901b17cb98a8 Mon Sep 17 00:00:00 2001 From: Spp Date: Mon, 25 Feb 2013 12:50:50 +0100 Subject: Core/RBAC: Create new permission 'Skip over-speed ping check' --- sql/updates/auth/2013_02_25_06_auth_misc.sql | 18 ++++++++++++++++++ src/server/game/Accounts/RBAC.h | 1 + src/server/game/Server/WorldSocket.cpp | 2 +- 3 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 sql/updates/auth/2013_02_25_06_auth_misc.sql (limited to 'src/server/game/Server') diff --git a/sql/updates/auth/2013_02_25_06_auth_misc.sql b/sql/updates/auth/2013_02_25_06_auth_misc.sql new file mode 100644 index 00000000000..92eae3d782d --- /dev/null +++ b/sql/updates/auth/2013_02_25_06_auth_misc.sql @@ -0,0 +1,18 @@ +-- Add new permission +DELETE FROM `rbac_permissions` WHERE `id` = 23; +INSERT INTO `rbac_permissions` (`id`, `name`) VALUES (23, 'Skip over-speed ping check'); + +-- Add new role +DELETE FROM `rbac_roles` WHERE `id` = 17; +INSERT INTO `rbac_roles` (`id`, `name`) VALUES (17, 'Skip over-speed ping check'); + +-- Add the permission to the role +DELETE FROM `rbac_role_permissions` WHERE `roleId` = 17; +INSERT INTO `rbac_role_permissions` (`roleId`, `permissionId`) VALUES (17, 23); + +-- Add it to all GM+ groups +DELETE FROM `rbac_group_roles` WHERE `roleId` = 17; +INSERT INTO `rbac_group_roles` (`groupId`, `roleId`) VALUES +(2, 17), +(3, 17), +(4, 17); diff --git a/src/server/game/Accounts/RBAC.h b/src/server/game/Accounts/RBAC.h index 0bc2f65a053..d0cf1e0e95b 100644 --- a/src/server/game/Accounts/RBAC.h +++ b/src/server/game/Accounts/RBAC.h @@ -60,6 +60,7 @@ enum RBACPermissions RBAC_PERM_ADMINISTRATOR_COMMANDS = 10, RBAC_PERM_LOG_GM_TRADE = 11, RBAC_PERM_SKIP_CHECK_INSTANCE_REQUIRED_BOSSES = 13, + RBAC_PERM_SKIP_CHECK_OVERSPEED_PING = 23, RBAC_PERM_COMMANDS_SAVE_WITHOUT_DELAY = 30, RBAC_PERM_COMMANDS_USE_UNSTUCK_WITH_ARGS = 31, RBAC_PERM_COMMANDS_BE_ASSIGNED_TICKET = 32, diff --git a/src/server/game/Server/WorldSocket.cpp b/src/server/game/Server/WorldSocket.cpp index de5dd1dd98b..128175d785b 100644 --- a/src/server/game/Server/WorldSocket.cpp +++ b/src/server/game/Server/WorldSocket.cpp @@ -980,7 +980,7 @@ int WorldSocket::HandlePing (WorldPacket& recvPacket) { ACE_GUARD_RETURN (LockType, Guard, m_SessionLock, -1); - if (m_Session && AccountMgr::IsPlayerAccount(m_Session->GetSecurity())) + if (m_Session && !m_Session->HasPermission(RBAC_PERM_SKIP_CHECK_OVERSPEED_PING)) { sLog->outError(LOG_FILTER_NETWORKIO, "WorldSocket::HandlePing: %s kicked for over-speed pings (address: %s)", m_Session->GetPlayerInfo().c_str(), GetRemoteAddress().c_str()); -- cgit v1.2.3