Core/RBAC: Move instance commands to RBAC (using individual permissions)
This commit is contained in:
@@ -0,0 +1,21 @@
|
|||||||
|
/* cs_instance.cpp */
|
||||||
|
|
||||||
|
SET @id = 412;
|
||||||
|
|
||||||
|
-- Add new permissions
|
||||||
|
DELETE FROM `rbac_permissions` WHERE `id` BETWEEN @id AND @id+4;
|
||||||
|
INSERT INTO `rbac_permissions` (`id`, `name`) VALUES
|
||||||
|
(@id+0, 'instance'),
|
||||||
|
(@id+1, 'instance listbinds'),
|
||||||
|
(@id+2, 'instance unbind'),
|
||||||
|
(@id+3, 'instance stats'),
|
||||||
|
(@id+4, 'instance savedata');
|
||||||
|
|
||||||
|
-- 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
|
||||||
|
(2, @id+0),
|
||||||
|
(2, @id+1),
|
||||||
|
(2, @id+2),
|
||||||
|
(2, @id+3),
|
||||||
|
(2, @id+4);
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
/* cs_instance.cpp */
|
||||||
|
|
||||||
|
SET @id = 408;
|
||||||
|
|
||||||
|
-- Update command table with new RBAC permissions
|
||||||
|
UPDATE `command` SET `permission` = @id+0 WHERE `name` = 'instance';
|
||||||
|
UPDATE `command` SET `permission` = @id+1 WHERE `name` = 'instance listbinds';
|
||||||
|
UPDATE `command` SET `permission` = @id+2 WHERE `name` = 'instance unbind';
|
||||||
|
UPDATE `command` SET `permission` = @id+3 WHERE `name` = 'instance stats';
|
||||||
|
UPDATE `command` SET `permission` = @id+3 WHERE `name` = 'instance savedata';
|
||||||
@@ -288,6 +288,11 @@ enum RBACPermissions
|
|||||||
RBAC_PERM_COMMAND_HONOR_ADD = 409,
|
RBAC_PERM_COMMAND_HONOR_ADD = 409,
|
||||||
RBAC_PERM_COMMAND_HONOR_ADD_KILL = 410,
|
RBAC_PERM_COMMAND_HONOR_ADD_KILL = 410,
|
||||||
RBAC_PERM_COMMAND_HONOR_UPDATE = 411,
|
RBAC_PERM_COMMAND_HONOR_UPDATE = 411,
|
||||||
|
RBAC_PERM_COMMAND_INSTANCE = 412,
|
||||||
|
RBAC_PERM_COMMAND_INSTANCE_LISTBINDS = 413,
|
||||||
|
RBAC_PERM_COMMAND_INSTANCE_UNBIND = 414,
|
||||||
|
RBAC_PERM_COMMAND_INSTANCE_STATS = 415,
|
||||||
|
RBAC_PERM_COMMAND_INSTANCE_SAVEDATA = 416,
|
||||||
|
|
||||||
// custom permissions 1000+
|
// custom permissions 1000+
|
||||||
RBAC_PERM_MAX
|
RBAC_PERM_MAX
|
||||||
|
|||||||
@@ -39,17 +39,17 @@ public:
|
|||||||
{
|
{
|
||||||
static ChatCommand instanceCommandTable[] =
|
static ChatCommand instanceCommandTable[] =
|
||||||
{
|
{
|
||||||
{ "listbinds", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleInstanceListBindsCommand, "", NULL },
|
{ "listbinds", RBAC_PERM_COMMAND_INSTANCE_LISTBINDS, false, &HandleInstanceListBindsCommand, "", NULL },
|
||||||
{ "unbind", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleInstanceUnbindCommand, "", NULL },
|
{ "unbind", RBAC_PERM_COMMAND_INSTANCE_UNBIND, false, &HandleInstanceUnbindCommand, "", NULL },
|
||||||
{ "stats", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleInstanceStatsCommand, "", NULL },
|
{ "stats", RBAC_PERM_COMMAND_INSTANCE_STATS, true, &HandleInstanceStatsCommand, "", NULL },
|
||||||
{ "savedata", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleInstanceSaveDataCommand, "", NULL },
|
{ "savedata", RBAC_PERM_COMMAND_INSTANCE_SAVEDATA, false, &HandleInstanceSaveDataCommand, "", NULL },
|
||||||
{ NULL, 0, false, NULL, "", NULL }
|
{ NULL, 0, false, NULL, "", NULL }
|
||||||
};
|
};
|
||||||
|
|
||||||
static ChatCommand commandTable[] =
|
static ChatCommand commandTable[] =
|
||||||
{
|
{
|
||||||
{ "instance", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, NULL, "", instanceCommandTable },
|
{ "instance", RBAC_PERM_COMMAND_INSTANCE, true, NULL, "", instanceCommandTable },
|
||||||
{ NULL, 0, false, NULL, "", NULL }
|
{ NULL, 0, false, NULL, "", NULL }
|
||||||
};
|
};
|
||||||
|
|
||||||
return commandTable;
|
return commandTable;
|
||||||
|
|||||||
Reference in New Issue
Block a user