diff options
-rw-r--r-- | sql/updates/auth/2013_08_30_01_auth_misc.sql | 2 | ||||
-rw-r--r-- | sql/updates/auth/2013_08_30_02_auth_misc.sql | 25 | ||||
-rw-r--r-- | sql/updates/world/2013_08_30_05_world_command.sql | 10 | ||||
-rw-r--r-- | src/server/game/Accounts/RBAC.h | 9 | ||||
-rw-r--r-- | src/server/scripts/Commands/cs_achievement.cpp | 8 | ||||
-rw-r--r-- | src/server/scripts/Commands/cs_arena.cpp | 18 |
6 files changed, 58 insertions, 14 deletions
diff --git a/sql/updates/auth/2013_08_30_01_auth_misc.sql b/sql/updates/auth/2013_08_30_01_auth_misc.sql index 743551163ce..096588ba2ab 100644 --- a/sql/updates/auth/2013_08_30_01_auth_misc.sql +++ b/sql/updates/auth/2013_08_30_01_auth_misc.sql @@ -1,5 +1,5 @@ -- Add new permissions -DELETE FROM `rbac_permissions` WHERE `id` BETWEEN 200 AND 216; +DELETE FROM `rbac_permissions` WHERE `id` BETWEEN 217 AND 229; INSERT INTO `rbac_permissions` (`id`, `name`) VALUES (217, 'Command: .account'), (218, 'Command: .account addon'), diff --git a/sql/updates/auth/2013_08_30_02_auth_misc.sql b/sql/updates/auth/2013_08_30_02_auth_misc.sql new file mode 100644 index 00000000000..da5f187627b --- /dev/null +++ b/sql/updates/auth/2013_08_30_02_auth_misc.sql @@ -0,0 +1,25 @@ +-- Add new permissions +DELETE FROM `rbac_permissions` WHERE `id` BETWEEN 230 AND 238; +INSERT INTO `rbac_permissions` (`id`, `name`) VALUES +(230, 'achievement'), +(231, 'achievement add'), +(232, 'arena'), +(233, 'arena captain'), +(234, 'arena create'), +(235, 'arena disband'), +(236, 'arena info'), +(237, 'arena lookup'), +(238, 'arena rename'); + +-- Add Permissions to "corresponding Commands Role" +DELETE FROM `rbac_role_permissions` WHERE `permissionId` BETWEEN 230 AND 238; +INSERT INTO `rbac_role_permissions` (`roleId`, `permissionId`) VALUES +(4, 230), +(4, 231), +(3, 232), +(4, 233), +(4, 234), +(4, 235), +(3, 236), +(3, 237), +(4, 238); diff --git a/sql/updates/world/2013_08_30_05_world_command.sql b/sql/updates/world/2013_08_30_05_world_command.sql new file mode 100644 index 00000000000..017ab4fa03e --- /dev/null +++ b/sql/updates/world/2013_08_30_05_world_command.sql @@ -0,0 +1,10 @@ +-- Update command table with new RBAC permissions +UPDATE `command` SET `permission` = 230 WHERE `name` = 'achievement'; +UPDATE `command` SET `permission` = 231 WHERE `name` = 'achievement add'; +UPDATE `command` SET `permission` = 232 WHERE `name` = 'arena'; +UPDATE `command` SET `permission` = 233 WHERE `name` = 'arena captain'; +UPDATE `command` SET `permission` = 234 WHERE `name` = 'arena create'; +UPDATE `command` SET `permission` = 235 WHERE `name` = 'arena disband'; +UPDATE `command` SET `permission` = 236 WHERE `name` = 'arena info'; +UPDATE `command` SET `permission` = 237 WHERE `name` = 'arena lookup'; +UPDATE `command` SET `permission` = 238 WHERE `name` = 'arena rename'; diff --git a/src/server/game/Accounts/RBAC.h b/src/server/game/Accounts/RBAC.h index aa1fa70cc70..f0e6f547ba3 100644 --- a/src/server/game/Accounts/RBAC.h +++ b/src/server/game/Accounts/RBAC.h @@ -127,6 +127,15 @@ enum RBACPermissions RBAC_PERM_COMMAND_ACCOUNT_SET_ADDON = 227,
RBAC_PERM_COMMAND_ACCOUNT_SET_GMLEVEL = 228,
RBAC_PERM_COMMAND_ACCOUNT_SET_PASSWORD = 229,
+ RBAC_PERM_COMMAND_ACHIEVEMENT = 230,
+ RBAC_PERM_COMMAND_ACHIEVEMENT_ADD = 231,
+ RBAC_PERM_COMMAND_ARENA = 232,
+ RBAC_PERM_COMMAND_ARENA_CAPTAIN = 233,
+ RBAC_PERM_COMMAND_ARENA_CREATE = 234,
+ RBAC_PERM_COMMAND_ARENA_DISBAND = 235,
+ RBAC_PERM_COMMAND_ARENA_INFO = 236,
+ RBAC_PERM_COMMAND_ARENA_LOOKUP = 237,
+ RBAC_PERM_COMMAND_ARENA_RENAME = 238,
// custom permissions 1000+
RBAC_PERM_MAX
diff --git a/src/server/scripts/Commands/cs_achievement.cpp b/src/server/scripts/Commands/cs_achievement.cpp index 1ea4b5b08db..bba55cd1fe8 100644 --- a/src/server/scripts/Commands/cs_achievement.cpp +++ b/src/server/scripts/Commands/cs_achievement.cpp @@ -37,13 +37,13 @@ public: { static ChatCommand achievementCommandTable[] = { - { "add", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleAchievementAddCommand, "", NULL }, - { NULL, 0, false, NULL, "", NULL } + { "add", RBAC_PERM_COMMAND_ACHIEVEMENT_ADD, false, &HandleAchievementAddCommand, "", NULL }, + { NULL, 0, false, NULL, "", NULL } }; static ChatCommand commandTable[] = { - { "achievement", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, NULL, "", achievementCommandTable }, - { NULL, 0, false, NULL, "", NULL } + { "achievement", RBAC_PERM_COMMAND_ACHIEVEMENT, false, NULL, "", achievementCommandTable }, + { NULL, 0, false, NULL, "", NULL } }; return commandTable; } diff --git a/src/server/scripts/Commands/cs_arena.cpp b/src/server/scripts/Commands/cs_arena.cpp index ece9a316ac8..90e47fda19f 100644 --- a/src/server/scripts/Commands/cs_arena.cpp +++ b/src/server/scripts/Commands/cs_arena.cpp @@ -38,18 +38,18 @@ public: { static ChatCommand arenaCommandTable[] = { - { "create", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleArenaCreateCommand, "", NULL }, - { "disband", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleArenaDisbandCommand, "", NULL }, - { "rename", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleArenaRenameCommand, "", NULL }, - { "captain", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleArenaCaptainCommand, "", NULL }, - { "info", RBAC_PERM_GAMEMASTER_COMMANDS, true, &HandleArenaInfoCommand, "", NULL }, - { "lookup", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleArenaLookupCommand, "", NULL }, - { NULL, RBAC_PERM_GAMEMASTER_COMMANDS, false, NULL, "", NULL } + { "create", RBAC_PERM_COMMAND_ARENA_CREATE, true, &HandleArenaCreateCommand, "", NULL }, + { "disband", RBAC_PERM_COMMAND_ARENA_DISBAND, true, &HandleArenaDisbandCommand, "", NULL }, + { "rename", RBAC_PERM_COMMAND_ARENA_RENAME, true, &HandleArenaRenameCommand, "", NULL }, + { "captain", RBAC_PERM_COMMAND_ARENA_CAPTAIN, false, &HandleArenaCaptainCommand, "", NULL }, + { "info", RBAC_PERM_COMMAND_ARENA_INFO, true, &HandleArenaInfoCommand, "", NULL }, + { "lookup", RBAC_PERM_COMMAND_ARENA_LOOKUP, false, &HandleArenaLookupCommand, "", NULL }, + { NULL, 0, false, NULL, "", NULL } }; static ChatCommand commandTable[] = { - { "arena", RBAC_PERM_GAMEMASTER_COMMANDS, false, NULL, "", arenaCommandTable }, - { NULL, RBAC_PERM_PLAYER_COMMANDS, false, NULL, "", NULL } + { "arena", RBAC_PERM_COMMAND_ARENA, false, NULL, "", arenaCommandTable }, + { NULL, 0, false, NULL, "", NULL } }; return commandTable; } |