diff options
author | Spp <spp@jorge.gr> | 2013-09-10 15:26:48 +0200 |
---|---|---|
committer | Spp <spp@jorge.gr> | 2013-09-10 15:26:48 +0200 |
commit | 78363e11b51c42c7f1d7a9598629531bb353a8ad (patch) | |
tree | 18d29a890ccda5fced350a9be7160a289ba3ab64 | |
parent | b10241876e6c9d45fb1582bdcf553bcb24262df7 (diff) |
Core/RBAC: Move titles and wp commands to RBAC (using individual permissions)
-rw-r--r-- | sql/updates/auth/2013_09_10_13_auth_misc.sql | 39 | ||||
-rw-r--r-- | sql/updates/world/2013_09_10_15_world_command.sql | 25 | ||||
-rw-r--r-- | src/server/game/Accounts/RBAC.h | 14 | ||||
-rw-r--r-- | src/server/scripts/Commands/cs_titles.cpp | 18 | ||||
-rw-r--r-- | src/server/scripts/Commands/cs_wp.cpp | 20 |
5 files changed, 97 insertions, 19 deletions
diff --git a/sql/updates/auth/2013_09_10_13_auth_misc.sql b/sql/updates/auth/2013_09_10_13_auth_misc.sql new file mode 100644 index 00000000000..825028dcb5a --- /dev/null +++ b/sql/updates/auth/2013_09_10_13_auth_misc.sql @@ -0,0 +1,39 @@ +/* cs_titles.cpp & cs_wp.cpp */ + +SET @id = 761; + +-- Add new permissions +DELETE FROM `rbac_permissions` WHERE `id` BETWEEN @id AND @id+13; +INSERT INTO `rbac_permissions` (`id`, `name`) VALUES +(@id+0, 'titles'), +(@id+1, 'titles add'), +(@id+2, 'titles current'), +(@id+3, 'titles remove'), +(@id+4, 'titles set'), +(@id+5, 'titles set mask'), +(@id+6, 'titles wp'), +(@id+7, 'titles wp add'), +(@id+8, 'titles wp event'), +(@id+9, 'titles wp load'), +(@id+10, 'titles wp modify'), +(@id+11, 'titles wp unload'), +(@id+12, 'titles wp reload'), +(@id+13, 'titles wp show'); + +-- Add permissions to "corresponding Commands Role" +DELETE FROM `rbac_role_permissions` WHERE `permissionId` BETWEEN @id AND @id+13; +INSERT INTO `rbac_role_permissions` (`roleId`, `permissionId`) VALUES +(3, @id+0), +(3, @id+1), +(3, @id+2), +(3, @id+3), +(3, @id+4), +(3, @id+5), +(3, @id+6), +(3, @id+7), +(3, @id+8), +(3, @id+9), +(3, @id+10), +(3, @id+11), +(4, @id+12), +(3, @id+13); diff --git a/sql/updates/world/2013_09_10_15_world_command.sql b/sql/updates/world/2013_09_10_15_world_command.sql new file mode 100644 index 00000000000..f3601a3041b --- /dev/null +++ b/sql/updates/world/2013_09_10_15_world_command.sql @@ -0,0 +1,25 @@ +/* cs_titles.cpp & cs_wp.cpp */ + +SET @id = 761; + +-- Update command table with new RBAC permissions +UPDATE `command` SET `permission` = @id+0 WHERE `name` = 'tele'; +UPDATE `command` SET `permission` = @id+0 WHERE `name` = 'ticket'; +UPDATE `command` SET `permission` = @id+1 WHERE `name` = 'ticket assign'; +UPDATE `command` SET `permission` = @id+2 WHERE `name` = 'ticket close'; +UPDATE `command` SET `permission` = @id+3 WHERE `name` = 'ticket closedlist'; +UPDATE `command` SET `permission` = @id+4 WHERE `name` = 'ticket comment'; +UPDATE `command` SET `permission` = @id+5 WHERE `name` = 'ticket complete'; +UPDATE `command` SET `permission` = @id+6 WHERE `name` = 'ticket delete'; +UPDATE `command` SET `permission` = @id+7 WHERE `name` = 'ticket escalate'; +UPDATE `command` SET `permission` = @id+8 WHERE `name` = 'ticket escalatedlist'; +UPDATE `command` SET `permission` = @id+9 WHERE `name` = 'ticket list'; +UPDATE `command` SET `permission` = @id+10 WHERE `name` = 'ticket onlinelist'; +UPDATE `command` SET `permission` = @id+11 WHERE `name` = 'ticket reset'; +UPDATE `command` SET `permission` = @id+12 WHERE `name` = 'ticket response'; +UPDATE `command` SET `permission` = @id+13 WHERE `name` = 'ticket response append'; +UPDATE `command` SET `permission` = @id+14 WHERE `name` = 'ticket response appendln'; +UPDATE `command` SET `permission` = @id+15 WHERE `name` = 'ticket togglesystem'; +UPDATE `command` SET `permission` = @id+16 WHERE `name` = 'ticket unassign'; +UPDATE `command` SET `permission` = @id+17 WHERE `name` = 'ticket viewid'; +UPDATE `command` SET `permission` = @id+18 WHERE `name` = 'ticket viewname'; diff --git a/src/server/game/Accounts/RBAC.h b/src/server/game/Accounts/RBAC.h index f2a96145957..3d28ccca9da 100644 --- a/src/server/game/Accounts/RBAC.h +++ b/src/server/game/Accounts/RBAC.h @@ -660,6 +660,20 @@ enum RBACPermissions RBAC_PERM_COMMAND_TICKET_UNASSIGN = 758, RBAC_PERM_COMMAND_TICKET_VIEWID = 759, RBAC_PERM_COMMAND_TICKET_VIEWNAME = 760, + RBAC_PERM_COMMAND_TITLES = 761, + RBAC_PERM_COMMAND_TITLES_ADD = 762, + RBAC_PERM_COMMAND_TITLES_CURRENT = 763, + RBAC_PERM_COMMAND_TITLES_REMOVE = 764, + RBAC_PERM_COMMAND_TITLES_SET = 765, + RBAC_PERM_COMMAND_TITLES_SET_MASK = 766, + RBAC_PERM_COMMAND_WP = 767, + RBAC_PERM_COMMAND_WP_ADD = 768, + RBAC_PERM_COMMAND_WP_EVENT = 769, + RBAC_PERM_COMMAND_WP_LOAD = 770, + RBAC_PERM_COMMAND_WP_MODIFY = 771, + RBAC_PERM_COMMAND_WP_UNLOAD = 772, + RBAC_PERM_COMMAND_WP_RELOAD = 773, + RBAC_PERM_COMMAND_WP_SHOW = 774, // custom permissions 1000+ RBAC_PERM_MAX diff --git a/src/server/scripts/Commands/cs_titles.cpp b/src/server/scripts/Commands/cs_titles.cpp index 1ffb7206f68..f6fd3170bbc 100644 --- a/src/server/scripts/Commands/cs_titles.cpp +++ b/src/server/scripts/Commands/cs_titles.cpp @@ -37,21 +37,21 @@ public: { static ChatCommand titlesSetCommandTable[] = { - { "mask", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleTitlesSetMaskCommand, "", NULL }, - { NULL, RBAC_PERM_PLAYER_COMMANDS, false, NULL, "", NULL } + { "mask", RBAC_PERM_COMMAND_TITLES_SET_MASK, false, &HandleTitlesSetMaskCommand, "", NULL }, + { NULL, 0, false, NULL, "", NULL } }; static ChatCommand titlesCommandTable[] = { - { "add", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleTitlesAddCommand, "", NULL }, - { "current", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleTitlesCurrentCommand, "", NULL }, - { "remove", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleTitlesRemoveCommand, "", NULL }, - { "set", RBAC_PERM_GAMEMASTER_COMMANDS, false, NULL, "", titlesSetCommandTable }, - { NULL, RBAC_PERM_PLAYER_COMMANDS, false, NULL, "", NULL } + { "add", RBAC_PERM_COMMAND_TITLES_ADD, false, &HandleTitlesAddCommand, "", NULL }, + { "current", RBAC_PERM_COMMAND_TITLES_CURRENT, false, &HandleTitlesCurrentCommand, "", NULL }, + { "remove", RBAC_PERM_COMMAND_TITLES_REMOVE, false, &HandleTitlesRemoveCommand, "", NULL }, + { "set", RBAC_PERM_COMMAND_TITLES_SET, false, NULL, "", titlesSetCommandTable }, + { NULL, 0, false, NULL, "", NULL } }; static ChatCommand commandTable[] = { - { "titles", RBAC_PERM_GAMEMASTER_COMMANDS, false, NULL, "", titlesCommandTable }, - { NULL, RBAC_PERM_PLAYER_COMMANDS, false, NULL, "", NULL } + { "titles", RBAC_PERM_COMMAND_TITLES, false, NULL, "", titlesCommandTable }, + { NULL, 0, false, NULL, "", NULL } }; return commandTable; } diff --git a/src/server/scripts/Commands/cs_wp.cpp b/src/server/scripts/Commands/cs_wp.cpp index 834c0e1b266..b1b6030a892 100644 --- a/src/server/scripts/Commands/cs_wp.cpp +++ b/src/server/scripts/Commands/cs_wp.cpp @@ -38,19 +38,19 @@ public: { static ChatCommand wpCommandTable[] = { - { "add", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleWpAddCommand, "", NULL }, - { "event", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleWpEventCommand, "", NULL }, - { "load", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleWpLoadCommand, "", NULL }, - { "modify", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleWpModifyCommand, "", NULL }, - { "unload", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleWpUnLoadCommand, "", NULL }, - { "reload", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleWpReloadCommand, "", NULL }, - { "show", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleWpShowCommand, "", NULL }, - { NULL, 0, false, NULL, "", NULL } + { "add", RBAC_PERM_COMMAND_WP_ADD, false, &HandleWpAddCommand, "", NULL }, + { "event", RBAC_PERM_COMMAND_WP_EVENT, false, &HandleWpEventCommand, "", NULL }, + { "load", RBAC_PERM_COMMAND_WP_LOAD, false, &HandleWpLoadCommand, "", NULL }, + { "modify", RBAC_PERM_COMMAND_WP_MODIFY, false, &HandleWpModifyCommand, "", NULL }, + { "unload", RBAC_PERM_COMMAND_WP_UNLOAD, false, &HandleWpUnLoadCommand, "", NULL }, + { "reload", RBAC_PERM_COMMAND_WP_RELOAD, false, &HandleWpReloadCommand, "", NULL }, + { "show", RBAC_PERM_COMMAND_WP_SHOW, false, &HandleWpShowCommand, "", NULL }, + { NULL, 0, false, NULL, "", NULL } }; static ChatCommand commandTable[] = { - { "wp", RBAC_PERM_GAMEMASTER_COMMANDS, false, NULL, "", wpCommandTable }, - { NULL, 0, false, NULL, "", NULL } + { "wp", RBAC_PERM_COMMAND_WP, false, NULL, "", wpCommandTable }, + { NULL, 0, false, NULL, "", NULL } }; return commandTable; } |