Core/RBAC: Move ticket commands to RBAC (using individual permissions)

This commit is contained in:
Spp
2013-09-10 15:13:08 +02:00
parent 68ab10ccd4
commit b10241876e
5 changed files with 119 additions and 25 deletions

View File

@@ -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);

View File

@@ -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);

View File

@@ -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';

View File

@@ -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

View File

@@ -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;
}