diff options
| -rw-r--r-- | sql/updates/auth/2013_09_02_03_auth_misc.sql | 49 | ||||
| -rw-r--r-- | sql/updates/world/2013_09_02_04_world_command.sql | 24 | ||||
| -rw-r--r-- | src/server/game/Accounts/RBAC.h | 19 | ||||
| -rw-r--r-- | src/server/scripts/Commands/cs_disable.cpp | 46 |
4 files changed, 115 insertions, 23 deletions
diff --git a/sql/updates/auth/2013_09_02_03_auth_misc.sql b/sql/updates/auth/2013_09_02_03_auth_misc.sql new file mode 100644 index 00000000000..cf1f1837af4 --- /dev/null +++ b/sql/updates/auth/2013_09_02_03_auth_misc.sql @@ -0,0 +1,49 @@ +/* cs_disable.cpp */ + +SET @id = 348; + +-- Add new permissions +DELETE FROM `rbac_permissions` WHERE `id` BETWEEN @id AND @id+18; +INSERT INTO `rbac_permissions` (`id`, `name`) VALUES +(@id+0, 'disable'), +(@id+1, 'disable add'), +(@id+2, 'disable add achievement_criteria'), +(@id+3, 'disable add battleground'), +(@id+4, 'disable add map'), +(@id+5, 'disable add mmap'), +(@id+6, 'disable add outdoorpvp'), +(@id+7, 'disable add quest'), +(@id+8, 'disable add spell'), +(@id+9, 'disable add vmap'), +(@id+10, 'disable remove'), +(@id+11, 'disable remove achievement_criteria'), +(@id+12, 'disable remove battleground'), +(@id+13, 'disable remove map'), +(@id+14, 'disable remove mmap'), +(@id+15, 'disable remove outdoorpvp'), +(@id+16, 'disable remove quest'), +(@id+17, 'disable remove spell'), +(@id+18, 'disable remove vmap'); + +-- Add permissions to "corresponding Commands Role" +DELETE FROM `rbac_role_permissions` WHERE `permissionId` BETWEEN @id AND @id+18; +INSERT INTO `rbac_role_permissions` (`roleId`, `permissionId`) VALUES +(4, @id+0), +(4, @id+1), +(4, @id+2), +(4, @id+3), +(4, @id+4), +(4, @id+5), +(4, @id+6), +(4, @id+7), +(4, @id+8), +(4, @id+9), +(4, @id+10), +(4, @id+11), +(4, @id+12), +(4, @id+13), +(4, @id+14), +(4, @id+15), +(4, @id+16), +(4, @id+17), +(4, @id+18); diff --git a/sql/updates/world/2013_09_02_04_world_command.sql b/sql/updates/world/2013_09_02_04_world_command.sql new file mode 100644 index 00000000000..a4bc79b8a39 --- /dev/null +++ b/sql/updates/world/2013_09_02_04_world_command.sql @@ -0,0 +1,24 @@ +/* cs_disable.cpp */ + +SET @id = 348; + +-- Update command table with new RBAC permissions +UPDATE `command` SET `permission` = @id+0 WHERE `name` = 'disable'; +UPDATE `command` SET `permission` = @id+1 WHERE `name` = 'disable add'; +UPDATE `command` SET `permission` = @id+2 WHERE `name` = 'disable add achievement_criteria'; +UPDATE `command` SET `permission` = @id+3 WHERE `name` = 'disable add battleground'; +UPDATE `command` SET `permission` = @id+4 WHERE `name` = 'disable add map'; +UPDATE `command` SET `permission` = @id+5 WHERE `name` = 'disable add mmap'; +UPDATE `command` SET `permission` = @id+6 WHERE `name` = 'disable add outdoorpvp'; +UPDATE `command` SET `permission` = @id+7 WHERE `name` = 'disable add quest'; +UPDATE `command` SET `permission` = @id+8 WHERE `name` = 'disable add spell'; +UPDATE `command` SET `permission` = @id+9 WHERE `name` = 'disable add vmap'; +UPDATE `command` SET `permission` = @id+10 WHERE `name` = 'disable remove'; +UPDATE `command` SET `permission` = @id+11 WHERE `name` = 'disable remove achievement_criteria'; +UPDATE `command` SET `permission` = @id+12 WHERE `name` = 'disable remove battleground'; +UPDATE `command` SET `permission` = @id+13 WHERE `name` = 'disable remove map'; +UPDATE `command` SET `permission` = @id+14 WHERE `name` = 'disable remove mmap'; +UPDATE `command` SET `permission` = @id+15 WHERE `name` = 'disable remove outdoorpvp'; +UPDATE `command` SET `permission` = @id+16 WHERE `name` = 'disable remove quest'; +UPDATE `command` SET `permission` = @id+17 WHERE `name` = 'disable remove spell'; +UPDATE `command` SET `permission` = @id+18 WHERE `name` = 'disable remove vmap'); diff --git a/src/server/game/Accounts/RBAC.h b/src/server/game/Accounts/RBAC.h index 5a8c51d205a..a4cbef2dfa7 100644 --- a/src/server/game/Accounts/RBAC.h +++ b/src/server/game/Accounts/RBAC.h @@ -225,6 +225,25 @@ enum RBACPermissions RBAC_PERM_COMMAND_DESERTER_INSTANCE = 345,
RBAC_PERM_COMMAND_DESERTER_INSTANCE_ADD = 346,
RBAC_PERM_COMMAND_DESERTER_INSTANCE_REMOVE = 347,
+ RBAC_PERM_COMMAND_DISABLE = 348,
+ RBAC_PERM_COMMAND_DISABLE_ADD = 349,
+ RBAC_PERM_COMMAND_DISABLE_ADD_ACHIEVEMENT_CRITERIA = 350,
+ RBAC_PERM_COMMAND_DISABLE_ADD_BATTLEGROUND = 351,
+ RBAC_PERM_COMMAND_DISABLE_ADD_MAP = 352,
+ RBAC_PERM_COMMAND_DISABLE_ADD_MMAP = 353,
+ RBAC_PERM_COMMAND_DISABLE_ADD_OUTDOORPVP = 354,
+ RBAC_PERM_COMMAND_DISABLE_ADD_QUEST = 355,
+ RBAC_PERM_COMMAND_DISABLE_ADD_SPELL = 356,
+ RBAC_PERM_COMMAND_DISABLE_ADD_VMAP = 357,
+ RBAC_PERM_COMMAND_DISABLE_REMOVE = 358,
+ RBAC_PERM_COMMAND_DISABLE_REMOVE_ACHIEVEMENT_CRITERIA = 359,
+ RBAC_PERM_COMMAND_DISABLE_REMOVE_BATTLEGROUND = 360,
+ RBAC_PERM_COMMAND_DISABLE_REMOVE_MAP = 361,
+ RBAC_PERM_COMMAND_DISABLE_REMOVE_MMAP = 362,
+ RBAC_PERM_COMMAND_DISABLE_REMOVE_OUTDOORPVP = 363,
+ RBAC_PERM_COMMAND_DISABLE_REMOVE_QUEST = 364,
+ RBAC_PERM_COMMAND_DISABLE_REMOVE_SPELL = 365,
+ RBAC_PERM_COMMAND_DISABLE_REMOVE_VMAP = 366,
// custom permissions 1000+
RBAC_PERM_MAX
};
diff --git a/src/server/scripts/Commands/cs_disable.cpp b/src/server/scripts/Commands/cs_disable.cpp index 038727a6207..23e7fa8eb98 100644 --- a/src/server/scripts/Commands/cs_disable.cpp +++ b/src/server/scripts/Commands/cs_disable.cpp @@ -41,38 +41,38 @@ public: { static ChatCommand removeDisableCommandTable[] = { - { "spell", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleRemoveDisableSpellCommand, "", NULL }, - { "quest", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleRemoveDisableQuestCommand, "", NULL }, - { "map", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleRemoveDisableMapCommand, "", NULL }, - { "battleground", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleRemoveDisableBattlegroundCommand, "", NULL }, - { "achievement_criteria", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleRemoveDisableAchievementCriteriaCommand, "", NULL }, - { "outdoorpvp", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleRemoveDisableOutdoorPvPCommand, "", NULL }, - { "vmap", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleRemoveDisableVmapCommand, "", NULL }, - { "mmap", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleRemoveDisableMMapCommand, "", NULL }, - { NULL, 0, false, NULL, "", NULL } + { "spell", RBAC_PERM_COMMAND_DISABLE_REMOVE_SPELL, true, &HandleRemoveDisableSpellCommand, "", NULL }, + { "quest", RBAC_PERM_COMMAND_DISABLE_REMOVE_QUEST, true, &HandleRemoveDisableQuestCommand, "", NULL }, + { "map", RBAC_PERM_COMMAND_DISABLE_REMOVE_MAP, true, &HandleRemoveDisableMapCommand, "", NULL }, + { "battleground", RBAC_PERM_COMMAND_DISABLE_REMOVE_BATTLEGROUND, true, &HandleRemoveDisableBattlegroundCommand, "", NULL }, + { "achievement_criteria", RBAC_PERM_COMMAND_DISABLE_REMOVE_ACHIEVEMENT_CRITERIA, true, &HandleRemoveDisableAchievementCriteriaCommand, "", NULL }, + { "outdoorpvp", RBAC_PERM_COMMAND_DISABLE_REMOVE_OUTDOORPVP, true, &HandleRemoveDisableOutdoorPvPCommand, "", NULL }, + { "vmap", RBAC_PERM_COMMAND_DISABLE_REMOVE_VMAP, true, &HandleRemoveDisableVmapCommand, "", NULL }, + { "mmap", RBAC_PERM_COMMAND_DISABLE_REMOVE_MMAP, true, &HandleRemoveDisableMMapCommand, "", NULL }, + { NULL, 0, false, NULL, "", NULL } }; static ChatCommand addDisableCommandTable[] = { - { "spell", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleAddDisableSpellCommand, "", NULL }, - { "quest", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleAddDisableQuestCommand, "", NULL }, - { "map", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleAddDisableMapCommand, "", NULL }, - { "battleground", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleAddDisableBattlegroundCommand, "", NULL }, - { "achievement_criteria", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleAddDisableAchievementCriteriaCommand, "", NULL }, - { "outdoorpvp", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleAddDisableOutdoorPvPCommand, "", NULL }, - { "vmap", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleAddDisableVmapCommand, "", NULL }, - { "mmap", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleAddDisableMMapCommand, "", NULL }, - { NULL, 0, false, NULL, "", NULL } + { "spell", RBAC_PERM_COMMAND_DISABLE_ADD_SPELL, true, &HandleAddDisableSpellCommand, "", NULL }, + { "quest", RBAC_PERM_COMMAND_DISABLE_ADD_QUEST, true, &HandleAddDisableQuestCommand, "", NULL }, + { "map", RBAC_PERM_COMMAND_DISABLE_ADD_MAP, true, &HandleAddDisableMapCommand, "", NULL }, + { "battleground", RBAC_PERM_COMMAND_DISABLE_ADD_BATTLEGROUND, true, &HandleAddDisableBattlegroundCommand, "", NULL }, + { "achievement_criteria", RBAC_PERM_COMMAND_DISABLE_ADD_ACHIEVEMENT_CRITERIA, true, &HandleAddDisableAchievementCriteriaCommand, "", NULL }, + { "outdoorpvp", RBAC_PERM_COMMAND_DISABLE_ADD_OUTDOORPVP, true, &HandleAddDisableOutdoorPvPCommand, "", NULL }, + { "vmap", RBAC_PERM_COMMAND_DISABLE_ADD_VMAP, true, &HandleAddDisableVmapCommand, "", NULL }, + { "mmap", RBAC_PERM_COMMAND_DISABLE_ADD_MMAP, true, &HandleAddDisableMMapCommand, "", NULL }, + { NULL, 0, false, NULL, "", NULL } }; static ChatCommand disableCommandTable[] = { - { "add", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, NULL, "", addDisableCommandTable }, - { "remove", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, NULL, "", removeDisableCommandTable }, - { NULL, 0, false, NULL, "", NULL } + { "add", RBAC_PERM_COMMAND_DISABLE_ADD, true, NULL, "", addDisableCommandTable }, + { "remove", RBAC_PERM_COMMAND_DISABLE_REMOVE, true, NULL, "", removeDisableCommandTable }, + { NULL, 0, false, NULL, "", NULL } }; static ChatCommand commandTable[] = { - { "disable", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, NULL, "", disableCommandTable }, - { NULL, 0, false, NULL, "", NULL } + { "disable", RBAC_PERM_COMMAND_DISABLE, false, NULL, "", disableCommandTable }, + { NULL, 0, false, NULL, "", NULL } }; return commandTable; } |
