From 1638092f18c0fd13e4e092a5d6eb23becfb8ae23 Mon Sep 17 00:00:00 2001 From: Spp Date: Mon, 25 Feb 2013 11:50:13 +0100 Subject: [PATCH] Core/RBAC: Create 'Skip instance required bosses check' permission --- sql/updates/auth/2013_02_25_01_auth_misc.sql | 14 ++++++++++++++ src/server/game/Accounts/RBAC.h | 1 + .../IcecrownCitadel/instance_icecrown_citadel.cpp | 2 +- 3 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 sql/updates/auth/2013_02_25_01_auth_misc.sql diff --git a/sql/updates/auth/2013_02_25_01_auth_misc.sql b/sql/updates/auth/2013_02_25_01_auth_misc.sql new file mode 100644 index 00000000000..0cd63bf2062 --- /dev/null +++ b/sql/updates/auth/2013_02_25_01_auth_misc.sql @@ -0,0 +1,14 @@ +-- Add new permission +INSERT INTO `rbac_permissions` (`id`, `name`) VALUES (13, 'Skip Instance required bosses check'); + +-- Add new role +INSERT INTO `rbac_roles` (`id`, `name`) VALUES (9, 'Skip Instance required bosses check'); + +-- Add the permission to the role +INSERT INTO `rbac_role_permissions` (`roleId`, `permissionId`) VALUES (9, 13); + +-- Add it to all GM+ groups +INSERT INTO `rbac_group_roles` (`groupId`, `roleId`) VALUES +(2, 9), +(3, 9), +(4, 9); diff --git a/src/server/game/Accounts/RBAC.h b/src/server/game/Accounts/RBAC.h index 82b9d74f711..27cfb8058d5 100644 --- a/src/server/game/Accounts/RBAC.h +++ b/src/server/game/Accounts/RBAC.h @@ -59,6 +59,7 @@ enum RBACPermissions RBAC_PERM_GAMEMASTER_COMMANDS, RBAC_PERM_ADMINISTRATOR_COMMANDS, RBAC_PERM_LOG_GM_TRADE, + RBAC_PERM_SKIP_CHECK_INSTANCE_REQUIRED_BOSSES = 13, RBAC_PERM_MAX }; diff --git a/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp b/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp index 593d9586156..db4ab2f32d2 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp @@ -954,7 +954,7 @@ class instance_icecrown_citadel : public InstanceMapScript bool CheckRequiredBosses(uint32 bossId, Player const* player = NULL) const { - if (player && AccountMgr::IsGMAccount(player->GetSession()->GetSecurity())) + if (player && player->GetSession()->HasPermission(RBAC_PERM_SKIP_CHECK_INSTANCE_REQUIRED_BOSSES)) return true; switch (bossId)