Core/RBAC: Create new permission 'Skip over-speed ping check'
This commit is contained in:
@@ -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);
|
||||||
@@ -60,6 +60,7 @@ enum RBACPermissions
|
|||||||
RBAC_PERM_ADMINISTRATOR_COMMANDS = 10,
|
RBAC_PERM_ADMINISTRATOR_COMMANDS = 10,
|
||||||
RBAC_PERM_LOG_GM_TRADE = 11,
|
RBAC_PERM_LOG_GM_TRADE = 11,
|
||||||
RBAC_PERM_SKIP_CHECK_INSTANCE_REQUIRED_BOSSES = 13,
|
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_SAVE_WITHOUT_DELAY = 30,
|
||||||
RBAC_PERM_COMMANDS_USE_UNSTUCK_WITH_ARGS = 31,
|
RBAC_PERM_COMMANDS_USE_UNSTUCK_WITH_ARGS = 31,
|
||||||
RBAC_PERM_COMMANDS_BE_ASSIGNED_TICKET = 32,
|
RBAC_PERM_COMMANDS_BE_ASSIGNED_TICKET = 32,
|
||||||
|
|||||||
@@ -980,7 +980,7 @@ int WorldSocket::HandlePing (WorldPacket& recvPacket)
|
|||||||
{
|
{
|
||||||
ACE_GUARD_RETURN (LockType, Guard, m_SessionLock, -1);
|
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)",
|
sLog->outError(LOG_FILTER_NETWORKIO, "WorldSocket::HandlePing: %s kicked for over-speed pings (address: %s)",
|
||||||
m_Session->GetPlayerInfo().c_str(), GetRemoteAddress().c_str());
|
m_Session->GetPlayerInfo().c_str(), GetRemoteAddress().c_str());
|
||||||
|
|||||||
Reference in New Issue
Block a user