aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/auth/2013_02_25_01_auth_misc.sql14
-rw-r--r--src/server/game/Accounts/RBAC.h1
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp2
3 files changed, 16 insertions, 1 deletions
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)