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

This commit is contained in:
Spp
2013-09-02 11:20:05 +02:00
parent 225691e0ae
commit fced8a896e
4 changed files with 39 additions and 7 deletions

View File

@@ -0,0 +1,19 @@
/* cs_disable.cpp */
SET @id = 367;
-- Add new permissions
DELETE FROM `rbac_permissions` WHERE `id` BETWEEN @id AND @id+3;
INSERT INTO `rbac_permissions` (`id`, `name`) VALUES
(@id+0, 'event'),
(@id+1, 'event activelist'),
(@id+2, 'event start'),
(@id+3, 'event stop');
-- Add permissions to "corresponding Commands Role"
DELETE FROM `rbac_role_permissions` WHERE `permissionId` BETWEEN @id AND @id+3;
INSERT INTO `rbac_role_permissions` (`roleId`, `permissionId`) VALUES
(2, @id+0),
(2, @id+1),
(2, @id+2),
(2, @id+3);

View File

@@ -0,0 +1,9 @@
/* cs_event.cpp */
SET @id = 367;
-- Update command table with new RBAC permissions
UPDATE `command` SET `permission` = @id+0 WHERE `name` = 'event';
UPDATE `command` SET `permission` = @id+1 WHERE `name` = 'event activelist';
UPDATE `command` SET `permission` = @id+2 WHERE `name` = 'event start';
UPDATE `command` SET `permission` = @id+3 WHERE `name` = 'event stop';

View File

@@ -244,6 +244,10 @@ enum RBACPermissions
RBAC_PERM_COMMAND_DISABLE_REMOVE_QUEST = 364,
RBAC_PERM_COMMAND_DISABLE_REMOVE_SPELL = 365,
RBAC_PERM_COMMAND_DISABLE_REMOVE_VMAP = 366,
RBAC_PERM_COMMAND_EVENT = 367,
RBAC_PERM_COMMAND_EVENT_ACTIVELIST = 368,
RBAC_PERM_COMMAND_EVENT_START = 369,
RBAC_PERM_COMMAND_EVENT_STOP = 370,
// custom permissions 1000+
RBAC_PERM_MAX
};

View File

@@ -37,16 +37,16 @@ public:
{
static ChatCommand eventCommandTable[] =
{
{ "activelist", RBAC_PERM_GAMEMASTER_COMMANDS, true, &HandleEventActiveListCommand, "", NULL },
{ "start", RBAC_PERM_GAMEMASTER_COMMANDS, true, &HandleEventStartCommand, "", NULL },
{ "stop", RBAC_PERM_GAMEMASTER_COMMANDS, true, &HandleEventStopCommand, "", NULL },
{ "", RBAC_PERM_GAMEMASTER_COMMANDS, true, &HandleEventInfoCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
{ "activelist", RBAC_PERM_COMMAND_EVENT_ACTIVELIST, true, &HandleEventActiveListCommand, "", NULL },
{ "start", RBAC_PERM_COMMAND_EVENT_START, true, &HandleEventStartCommand, "", NULL },
{ "stop", RBAC_PERM_COMMAND_EVENT_STOP, true, &HandleEventStopCommand, "", NULL },
{ "", RBAC_PERM_COMMAND_EVENT, true, &HandleEventInfoCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
};
static ChatCommand commandTable[] =
{
{ "event", RBAC_PERM_GAMEMASTER_COMMANDS, false, NULL, "", eventCommandTable },
{ NULL, 0, false, NULL, "", NULL }
{ "event", RBAC_PERM_COMMAND_EVENT, false, NULL, "", eventCommandTable },
{ NULL, 0, false, NULL, "", NULL }
};
return commandTable;
}