diff options
author | Spp <spp@jorge.gr> | 2013-09-10 15:13:08 +0200 |
---|---|---|
committer | Spp <spp@jorge.gr> | 2013-09-10 15:13:08 +0200 |
commit | b10241876e6c9d45fb1582bdcf553bcb24262df7 (patch) | |
tree | b96484325185e457f3995660cc112630f43fa479 | |
parent | 68ab10ccd4b3358ddff4644a2350906d598b2424 (diff) |
Core/RBAC: Move ticket commands to RBAC (using individual permissions)
-rw-r--r-- | sql/updates/auth/2013_09_10_11_auth_misc.sql | 7 | ||||
-rw-r--r-- | sql/updates/auth/2013_09_10_12_auth_misc.sql | 49 | ||||
-rw-r--r-- | sql/updates/world/2013_09_10_14_world_command.sql | 25 | ||||
-rw-r--r-- | src/server/game/Accounts/RBAC.h | 19 | ||||
-rw-r--r-- | src/server/scripts/Commands/cs_ticket.cpp | 44 |
5 files changed, 119 insertions, 25 deletions
diff --git a/sql/updates/auth/2013_09_10_11_auth_misc.sql b/sql/updates/auth/2013_09_10_11_auth_misc.sql index 011f1219547..e92c1cb3fae 100644 --- a/sql/updates/auth/2013_09_10_11_auth_misc.sql +++ b/sql/updates/auth/2013_09_10_11_auth_misc.sql @@ -14,7 +14,8 @@ INSERT INTO `rbac_permissions` (`id`, `name`) VALUES -- Add permissions to "corresponding Commands Role" DELETE FROM `rbac_role_permissions` WHERE `permissionId` BETWEEN @id AND @id+4; INSERT INTO `rbac_role_permissions` (`roleId`, `permissionId`) VALUES -(4, @id+0), +(2, @id+0), (4, @id+1), -(4, @id+3), -(4, @id+4); +(4, @id+2), +(2, @id+3), +(2, @id+4); diff --git a/sql/updates/auth/2013_09_10_12_auth_misc.sql b/sql/updates/auth/2013_09_10_12_auth_misc.sql new file mode 100644 index 00000000000..fbf78e175c6 --- /dev/null +++ b/sql/updates/auth/2013_09_10_12_auth_misc.sql @@ -0,0 +1,49 @@ +/* cs_ticket.cpp */ + +SET @id = 742; + +-- Add new permissions +DELETE FROM `rbac_permissions` WHERE `id` BETWEEN @id AND @id+18; +INSERT INTO `rbac_permissions` (`id`, `name`) VALUES +(@id+0, 'ticket'), +(@id+1, 'ticket assign'), +(@id+2, 'ticket close'), +(@id+3, 'ticket closedlist'), +(@id+4, 'ticket comment'), +(@id+5, 'ticket complete'), +(@id+6, 'ticket delete'), +(@id+7, 'ticket escalate'), +(@id+8, 'ticket escalatedlist'), +(@id+9, 'ticket list'), +(@id+10, 'ticket onlinelist'), +(@id+11, 'ticket reset'), +(@id+12, 'ticket response'), +(@id+13, 'ticket response append'), +(@id+14, 'ticket response appendln'), +(@id+15, 'ticket togglesystem'), +(@id+16, 'ticket unassign'), +(@id+17, 'ticket viewid'), +(@id+18, 'ticket viewname'); + +-- 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 +(2, @id+0), +(3, @id+1), +(2, @id+2), +(2, @id+3), +(2, @id+4), +(2, @id+5), +(4, @id+6), +(2, @id+7), +(3, @id+8), +(2, @id+9), +(2, @id+10), +(4, @id+11), +(2, @id+12), +(2, @id+13), +(2, @id+14), +(4, @id+15), +(3, @id+16), +(2, @id+17), +(2, @id+18); diff --git a/sql/updates/world/2013_09_10_14_world_command.sql b/sql/updates/world/2013_09_10_14_world_command.sql new file mode 100644 index 00000000000..853dcc77fe0 --- /dev/null +++ b/sql/updates/world/2013_09_10_14_world_command.sql @@ -0,0 +1,25 @@ +/* cs_ticket.cpp */ + +SET @id = 742; + +-- 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 bee4606ebe0..f2a96145957 100644 --- a/src/server/game/Accounts/RBAC.h +++ b/src/server/game/Accounts/RBAC.h @@ -641,6 +641,25 @@ enum RBACPermissions RBAC_PERM_COMMAND_TELE_DEL = 739, RBAC_PERM_COMMAND_TELE_NAME = 740, RBAC_PERM_COMMAND_TELE_GROUP = 741, + RBAC_PERM_COMMAND_TICKET = 742, + RBAC_PERM_COMMAND_TICKET_ASSIGN = 743, + RBAC_PERM_COMMAND_TICKET_CLOSE = 744, + RBAC_PERM_COMMAND_TICKET_CLOSEDLIST = 745, + RBAC_PERM_COMMAND_TICKET_COMMENT = 746, + RBAC_PERM_COMMAND_TICKET_COMPLETE = 747, + RBAC_PERM_COMMAND_TICKET_DELETE = 748, + RBAC_PERM_COMMAND_TICKET_ESCALATE = 749, + RBAC_PERM_COMMAND_TICKET_ESCALATEDLIST = 750, + RBAC_PERM_COMMAND_TICKET_LIST = 751, + RBAC_PERM_COMMAND_TICKET_ONLINELIST = 752, + RBAC_PERM_COMMAND_TICKET_RESET = 753, + RBAC_PERM_COMMAND_TICKET_RESPONSE = 754, + RBAC_PERM_COMMAND_TICKET_RESPONSE_APPEND = 755, + RBAC_PERM_COMMAND_TICKET_RESPONSE_APPENDLN = 756, + RBAC_PERM_COMMAND_TICKET_TOGGLESYSTEM = 757, + RBAC_PERM_COMMAND_TICKET_UNASSIGN = 758, + RBAC_PERM_COMMAND_TICKET_VIEWID = 759, + RBAC_PERM_COMMAND_TICKET_VIEWNAME = 760, // custom permissions 1000+ RBAC_PERM_MAX diff --git a/src/server/scripts/Commands/cs_ticket.cpp b/src/server/scripts/Commands/cs_ticket.cpp index 5c1ce304723..1c60a8143b4 100644 --- a/src/server/scripts/Commands/cs_ticket.cpp +++ b/src/server/scripts/Commands/cs_ticket.cpp @@ -40,34 +40,34 @@ public: { static ChatCommand ticketResponseCommandTable[] = { - { "append", RBAC_PERM_MODERATOR_COMMANDS, true, &HandleGMTicketResponseAppendCommand, "", NULL }, - { "appendln", RBAC_PERM_MODERATOR_COMMANDS, true, &HandleGMTicketResponseAppendLnCommand, "", NULL }, - { NULL, 0, false, NULL, "", NULL } + { "append", RBAC_PERM_COMMAND_TICKET_RESPONSE_APPEND, true, &HandleGMTicketResponseAppendCommand, "", NULL }, + { "appendln", RBAC_PERM_COMMAND_TICKET_RESPONSE_APPENDLN, true, &HandleGMTicketResponseAppendLnCommand, "", NULL }, + { NULL, 0, false, NULL, "", NULL } }; static ChatCommand ticketCommandTable[] = { - { "assign", RBAC_PERM_GAMEMASTER_COMMANDS, true, &HandleGMTicketAssignToCommand, "", NULL }, - { "close", RBAC_PERM_MODERATOR_COMMANDS, true, &HandleGMTicketCloseByIdCommand, "", NULL }, - { "closedlist", RBAC_PERM_MODERATOR_COMMANDS, true, &HandleGMTicketListClosedCommand, "", NULL }, - { "comment", RBAC_PERM_MODERATOR_COMMANDS, true, &HandleGMTicketCommentCommand, "", NULL }, - { "complete", RBAC_PERM_MODERATOR_COMMANDS, true, &HandleGMTicketCompleteCommand, "", NULL }, - { "delete", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleGMTicketDeleteByIdCommand, "", NULL }, - { "escalate", RBAC_PERM_MODERATOR_COMMANDS, true, &HandleGMTicketEscalateCommand, "", NULL }, - { "escalatedlist", RBAC_PERM_GAMEMASTER_COMMANDS, true, &HandleGMTicketListEscalatedCommand, "", NULL }, - { "list", RBAC_PERM_MODERATOR_COMMANDS, true, &HandleGMTicketListCommand, "", NULL }, - { "onlinelist", RBAC_PERM_MODERATOR_COMMANDS, true, &HandleGMTicketListOnlineCommand, "", NULL }, - { "reset", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleGMTicketResetCommand, "", NULL }, - { "response", RBAC_PERM_MODERATOR_COMMANDS, true, NULL, "", ticketResponseCommandTable }, - { "togglesystem", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleToggleGMTicketSystem, "", NULL }, - { "unassign", RBAC_PERM_GAMEMASTER_COMMANDS, true, &HandleGMTicketUnAssignCommand, "", NULL }, - { "viewid", RBAC_PERM_MODERATOR_COMMANDS, true, &HandleGMTicketGetByIdCommand, "", NULL }, - { "viewname", RBAC_PERM_MODERATOR_COMMANDS, true, &HandleGMTicketGetByNameCommand, "", NULL }, - { NULL, 0, false, NULL, "", NULL } + { "assign", RBAC_PERM_COMMAND_TICKET_ASSIGN, true, &HandleGMTicketAssignToCommand, "", NULL }, + { "close", RBAC_PERM_COMMAND_TICKET_CLOSE, true, &HandleGMTicketCloseByIdCommand, "", NULL }, + { "closedlist", RBAC_PERM_COMMAND_TICKET_CLOSEDLIST, true, &HandleGMTicketListClosedCommand, "", NULL }, + { "comment", RBAC_PERM_COMMAND_TICKET_COMMENT, true, &HandleGMTicketCommentCommand, "", NULL }, + { "complete", RBAC_PERM_COMMAND_TICKET_COMPLETE, true, &HandleGMTicketCompleteCommand, "", NULL }, + { "delete", RBAC_PERM_COMMAND_TICKET_DELETE, true, &HandleGMTicketDeleteByIdCommand, "", NULL }, + { "escalate", RBAC_PERM_COMMAND_TICKET_ESCALATE, true, &HandleGMTicketEscalateCommand, "", NULL }, + { "escalatedlist", RBAC_PERM_COMMAND_TICKET_ESCALATEDLIST, true, &HandleGMTicketListEscalatedCommand, "", NULL }, + { "list", RBAC_PERM_COMMAND_TICKET_LIST, true, &HandleGMTicketListCommand, "", NULL }, + { "onlinelist", RBAC_PERM_COMMAND_TICKET_ONLINELIST, true, &HandleGMTicketListOnlineCommand, "", NULL }, + { "reset", RBAC_PERM_COMMAND_TICKET_RESET, true, &HandleGMTicketResetCommand, "", NULL }, + { "response", RBAC_PERM_COMMAND_TICKET_RESPONSE, true, NULL, "", ticketResponseCommandTable }, + { "togglesystem", RBAC_PERM_COMMAND_TICKET_TOGGLESYSTEM, true, &HandleToggleGMTicketSystem, "", NULL }, + { "unassign", RBAC_PERM_COMMAND_TICKET_UNASSIGN, true, &HandleGMTicketUnAssignCommand, "", NULL }, + { "viewid", RBAC_PERM_COMMAND_TICKET_VIEWID, true, &HandleGMTicketGetByIdCommand, "", NULL }, + { "viewname", RBAC_PERM_COMMAND_TICKET_VIEWNAME, true, &HandleGMTicketGetByNameCommand, "", NULL }, + { NULL, 0, false, NULL, "", NULL } }; static ChatCommand commandTable[] = { - { "ticket", RBAC_PERM_MODERATOR_COMMANDS, false, NULL, "", ticketCommandTable }, - { NULL, 0, false, NULL, "", NULL } + { "ticket", RBAC_PERM_COMMAND_TICKET, false, NULL, "", ticketCommandTable }, + { NULL, 0, false, NULL, "", NULL } }; return commandTable; } |