aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSpp <spp@jorge.gr>2013-09-10 15:13:08 +0200
committerSpp <spp@jorge.gr>2013-09-10 15:13:08 +0200
commitb10241876e6c9d45fb1582bdcf553bcb24262df7 (patch)
treeb96484325185e457f3995660cc112630f43fa479
parent68ab10ccd4b3358ddff4644a2350906d598b2424 (diff)
Core/RBAC: Move ticket commands to RBAC (using individual permissions)
-rw-r--r--sql/updates/auth/2013_09_10_11_auth_misc.sql7
-rw-r--r--sql/updates/auth/2013_09_10_12_auth_misc.sql49
-rw-r--r--sql/updates/world/2013_09_10_14_world_command.sql25
-rw-r--r--src/server/game/Accounts/RBAC.h19
-rw-r--r--src/server/scripts/Commands/cs_ticket.cpp44
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;
}