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

This commit is contained in:
Spp
2013-09-10 13:08:39 +02:00
parent 1038446278
commit 4d36ce7405
4 changed files with 48 additions and 8 deletions

View File

@@ -0,0 +1,23 @@
/* cs_mmaps.cpp */
SET @id = 536;
-- Add new permissions
DELETE FROM `rbac_permissions` WHERE `id` BETWEEN @id AND @id+5;
INSERT INTO `rbac_permissions` (`id`, `name`) VALUES
(@id+0, 'mmap'),
(@id+1, 'mmap loadedtiles'),
(@id+2, 'mmap loc'),
(@id+3, 'mmap path'),
(@id+4, 'mmap stats'),
(@id+5, 'mmap testarea');
-- Add permissions to "corresponding Commands Role"
DELETE FROM `rbac_role_permissions` WHERE `permissionId` BETWEEN @id AND @id+5;
INSERT INTO `rbac_role_permissions` (`roleId`, `permissionId`) VALUES
(4, @id+0),
(4, @id+1),
(4, @id+2),
(4, @id+3),
(4, @id+4),
(4, @id+5);

View File

@@ -0,0 +1,11 @@
/* cs_mmaps.cpp */
SET @id = 536;
-- Update command table with new RBAC permissions
UPDATE `command` SET `permission` = @id+0 WHERE `name` = 'mmap';
UPDATE `command` SET `permission` = @id+1 WHERE `name` = 'mmap loadedtiles';
UPDATE `command` SET `permission` = @id+2 WHERE `name` = 'mmap loc';
UPDATE `command` SET `permission` = @id+3 WHERE `name` = 'mmap path';
UPDATE `command` SET `permission` = @id+4 WHERE `name` = 'mmap stats';
UPDATE `command` SET `permission` = @id+5 WHERE `name` = 'mmap testarea';

View File

@@ -435,6 +435,12 @@ enum RBACPermissions
RBAC_PERM_COMMAND_UNPOSSESS = 533,
RBAC_PERM_COMMAND_UNSTUCK = 534,
RBAC_PERM_COMMAND_WCHANGE = 535,
RBAC_PERM_COMMAND_MMAP = 536,
RBAC_PERM_COMMAND_MMAP_LOADEDTILES = 537,
RBAC_PERM_COMMAND_MMAP_LOC = 538,
RBAC_PERM_COMMAND_MMAP_PATH = 539,
RBAC_PERM_COMMAND_MMAP_STATS = 540,
RBAC_PERM_COMMAND_MMAP_TESTAREA = 541,
// custom permissions 1000+
RBAC_PERM_MAX

View File

@@ -45,18 +45,18 @@ public:
{
static ChatCommand mmapCommandTable[] =
{
{ "path", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleMmapPathCommand, "", NULL },
{ "loc", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleMmapLocCommand, "", NULL },
{ "loadedtiles", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleMmapLoadedTilesCommand, "", NULL },
{ "stats", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleMmapStatsCommand, "", NULL },
{ "testarea", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleMmapTestArea, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
{ "loadedtiles", RBAC_PERM_COMMAND_MMAP_LOADEDTILES, false, &HandleMmapLoadedTilesCommand, "", NULL },
{ "loc", RBAC_PERM_COMMAND_MMAP_LOC, false, &HandleMmapLocCommand, "", NULL },
{ "path", RBAC_PERM_COMMAND_MMAP_PATH, false, &HandleMmapPathCommand, "", NULL },
{ "stats", RBAC_PERM_COMMAND_MMAP_STATS, false, &HandleMmapStatsCommand, "", NULL },
{ "testarea", RBAC_PERM_COMMAND_MMAP_TESTAREA, false, &HandleMmapTestArea, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
};
static ChatCommand commandTable[] =
{
{ "mmap", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, NULL, "", mmapCommandTable },
{ NULL, 0, false, NULL, "", NULL }
{ "mmap", RBAC_PERM_COMMAND_MMAP, true, NULL, "", mmapCommandTable },
{ NULL, 0, false, NULL, "", NULL }
};
return commandTable;
}