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

This commit is contained in:
Spp
2013-09-02 11:17:15 +02:00
parent cf9d01a0f3
commit 225691e0ae
4 changed files with 115 additions and 23 deletions

View File

@@ -0,0 +1,49 @@
/* cs_disable.cpp */
SET @id = 348;
-- Add new permissions
DELETE FROM `rbac_permissions` WHERE `id` BETWEEN @id AND @id+18;
INSERT INTO `rbac_permissions` (`id`, `name`) VALUES
(@id+0, 'disable'),
(@id+1, 'disable add'),
(@id+2, 'disable add achievement_criteria'),
(@id+3, 'disable add battleground'),
(@id+4, 'disable add map'),
(@id+5, 'disable add mmap'),
(@id+6, 'disable add outdoorpvp'),
(@id+7, 'disable add quest'),
(@id+8, 'disable add spell'),
(@id+9, 'disable add vmap'),
(@id+10, 'disable remove'),
(@id+11, 'disable remove achievement_criteria'),
(@id+12, 'disable remove battleground'),
(@id+13, 'disable remove map'),
(@id+14, 'disable remove mmap'),
(@id+15, 'disable remove outdoorpvp'),
(@id+16, 'disable remove quest'),
(@id+17, 'disable remove spell'),
(@id+18, 'disable remove vmap');
-- 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
(4, @id+0),
(4, @id+1),
(4, @id+2),
(4, @id+3),
(4, @id+4),
(4, @id+5),
(4, @id+6),
(4, @id+7),
(4, @id+8),
(4, @id+9),
(4, @id+10),
(4, @id+11),
(4, @id+12),
(4, @id+13),
(4, @id+14),
(4, @id+15),
(4, @id+16),
(4, @id+17),
(4, @id+18);

View File

@@ -0,0 +1,24 @@
/* cs_disable.cpp */
SET @id = 348;
-- Update command table with new RBAC permissions
UPDATE `command` SET `permission` = @id+0 WHERE `name` = 'disable';
UPDATE `command` SET `permission` = @id+1 WHERE `name` = 'disable add';
UPDATE `command` SET `permission` = @id+2 WHERE `name` = 'disable add achievement_criteria';
UPDATE `command` SET `permission` = @id+3 WHERE `name` = 'disable add battleground';
UPDATE `command` SET `permission` = @id+4 WHERE `name` = 'disable add map';
UPDATE `command` SET `permission` = @id+5 WHERE `name` = 'disable add mmap';
UPDATE `command` SET `permission` = @id+6 WHERE `name` = 'disable add outdoorpvp';
UPDATE `command` SET `permission` = @id+7 WHERE `name` = 'disable add quest';
UPDATE `command` SET `permission` = @id+8 WHERE `name` = 'disable add spell';
UPDATE `command` SET `permission` = @id+9 WHERE `name` = 'disable add vmap';
UPDATE `command` SET `permission` = @id+10 WHERE `name` = 'disable remove';
UPDATE `command` SET `permission` = @id+11 WHERE `name` = 'disable remove achievement_criteria';
UPDATE `command` SET `permission` = @id+12 WHERE `name` = 'disable remove battleground';
UPDATE `command` SET `permission` = @id+13 WHERE `name` = 'disable remove map';
UPDATE `command` SET `permission` = @id+14 WHERE `name` = 'disable remove mmap';
UPDATE `command` SET `permission` = @id+15 WHERE `name` = 'disable remove outdoorpvp';
UPDATE `command` SET `permission` = @id+16 WHERE `name` = 'disable remove quest';
UPDATE `command` SET `permission` = @id+17 WHERE `name` = 'disable remove spell';
UPDATE `command` SET `permission` = @id+18 WHERE `name` = 'disable remove vmap');

View File

@@ -225,6 +225,25 @@ enum RBACPermissions
RBAC_PERM_COMMAND_DESERTER_INSTANCE = 345,
RBAC_PERM_COMMAND_DESERTER_INSTANCE_ADD = 346,
RBAC_PERM_COMMAND_DESERTER_INSTANCE_REMOVE = 347,
RBAC_PERM_COMMAND_DISABLE = 348,
RBAC_PERM_COMMAND_DISABLE_ADD = 349,
RBAC_PERM_COMMAND_DISABLE_ADD_ACHIEVEMENT_CRITERIA = 350,
RBAC_PERM_COMMAND_DISABLE_ADD_BATTLEGROUND = 351,
RBAC_PERM_COMMAND_DISABLE_ADD_MAP = 352,
RBAC_PERM_COMMAND_DISABLE_ADD_MMAP = 353,
RBAC_PERM_COMMAND_DISABLE_ADD_OUTDOORPVP = 354,
RBAC_PERM_COMMAND_DISABLE_ADD_QUEST = 355,
RBAC_PERM_COMMAND_DISABLE_ADD_SPELL = 356,
RBAC_PERM_COMMAND_DISABLE_ADD_VMAP = 357,
RBAC_PERM_COMMAND_DISABLE_REMOVE = 358,
RBAC_PERM_COMMAND_DISABLE_REMOVE_ACHIEVEMENT_CRITERIA = 359,
RBAC_PERM_COMMAND_DISABLE_REMOVE_BATTLEGROUND = 360,
RBAC_PERM_COMMAND_DISABLE_REMOVE_MAP = 361,
RBAC_PERM_COMMAND_DISABLE_REMOVE_MMAP = 362,
RBAC_PERM_COMMAND_DISABLE_REMOVE_OUTDOORPVP = 363,
RBAC_PERM_COMMAND_DISABLE_REMOVE_QUEST = 364,
RBAC_PERM_COMMAND_DISABLE_REMOVE_SPELL = 365,
RBAC_PERM_COMMAND_DISABLE_REMOVE_VMAP = 366,
// custom permissions 1000+
RBAC_PERM_MAX
};

View File

@@ -41,38 +41,38 @@ public:
{
static ChatCommand removeDisableCommandTable[] =
{
{ "spell", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleRemoveDisableSpellCommand, "", NULL },
{ "quest", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleRemoveDisableQuestCommand, "", NULL },
{ "map", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleRemoveDisableMapCommand, "", NULL },
{ "battleground", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleRemoveDisableBattlegroundCommand, "", NULL },
{ "achievement_criteria", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleRemoveDisableAchievementCriteriaCommand, "", NULL },
{ "outdoorpvp", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleRemoveDisableOutdoorPvPCommand, "", NULL },
{ "vmap", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleRemoveDisableVmapCommand, "", NULL },
{ "mmap", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleRemoveDisableMMapCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
{ "spell", RBAC_PERM_COMMAND_DISABLE_REMOVE_SPELL, true, &HandleRemoveDisableSpellCommand, "", NULL },
{ "quest", RBAC_PERM_COMMAND_DISABLE_REMOVE_QUEST, true, &HandleRemoveDisableQuestCommand, "", NULL },
{ "map", RBAC_PERM_COMMAND_DISABLE_REMOVE_MAP, true, &HandleRemoveDisableMapCommand, "", NULL },
{ "battleground", RBAC_PERM_COMMAND_DISABLE_REMOVE_BATTLEGROUND, true, &HandleRemoveDisableBattlegroundCommand, "", NULL },
{ "achievement_criteria", RBAC_PERM_COMMAND_DISABLE_REMOVE_ACHIEVEMENT_CRITERIA, true, &HandleRemoveDisableAchievementCriteriaCommand, "", NULL },
{ "outdoorpvp", RBAC_PERM_COMMAND_DISABLE_REMOVE_OUTDOORPVP, true, &HandleRemoveDisableOutdoorPvPCommand, "", NULL },
{ "vmap", RBAC_PERM_COMMAND_DISABLE_REMOVE_VMAP, true, &HandleRemoveDisableVmapCommand, "", NULL },
{ "mmap", RBAC_PERM_COMMAND_DISABLE_REMOVE_MMAP, true, &HandleRemoveDisableMMapCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
};
static ChatCommand addDisableCommandTable[] =
{
{ "spell", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleAddDisableSpellCommand, "", NULL },
{ "quest", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleAddDisableQuestCommand, "", NULL },
{ "map", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleAddDisableMapCommand, "", NULL },
{ "battleground", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleAddDisableBattlegroundCommand, "", NULL },
{ "achievement_criteria", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleAddDisableAchievementCriteriaCommand, "", NULL },
{ "outdoorpvp", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleAddDisableOutdoorPvPCommand, "", NULL },
{ "vmap", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleAddDisableVmapCommand, "", NULL },
{ "mmap", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleAddDisableMMapCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
{ "spell", RBAC_PERM_COMMAND_DISABLE_ADD_SPELL, true, &HandleAddDisableSpellCommand, "", NULL },
{ "quest", RBAC_PERM_COMMAND_DISABLE_ADD_QUEST, true, &HandleAddDisableQuestCommand, "", NULL },
{ "map", RBAC_PERM_COMMAND_DISABLE_ADD_MAP, true, &HandleAddDisableMapCommand, "", NULL },
{ "battleground", RBAC_PERM_COMMAND_DISABLE_ADD_BATTLEGROUND, true, &HandleAddDisableBattlegroundCommand, "", NULL },
{ "achievement_criteria", RBAC_PERM_COMMAND_DISABLE_ADD_ACHIEVEMENT_CRITERIA, true, &HandleAddDisableAchievementCriteriaCommand, "", NULL },
{ "outdoorpvp", RBAC_PERM_COMMAND_DISABLE_ADD_OUTDOORPVP, true, &HandleAddDisableOutdoorPvPCommand, "", NULL },
{ "vmap", RBAC_PERM_COMMAND_DISABLE_ADD_VMAP, true, &HandleAddDisableVmapCommand, "", NULL },
{ "mmap", RBAC_PERM_COMMAND_DISABLE_ADD_MMAP, true, &HandleAddDisableMMapCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
};
static ChatCommand disableCommandTable[] =
{
{ "add", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, NULL, "", addDisableCommandTable },
{ "remove", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, NULL, "", removeDisableCommandTable },
{ NULL, 0, false, NULL, "", NULL }
{ "add", RBAC_PERM_COMMAND_DISABLE_ADD, true, NULL, "", addDisableCommandTable },
{ "remove", RBAC_PERM_COMMAND_DISABLE_REMOVE, true, NULL, "", removeDisableCommandTable },
{ NULL, 0, false, NULL, "", NULL }
};
static ChatCommand commandTable[] =
{
{ "disable", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, NULL, "", disableCommandTable },
{ NULL, 0, false, NULL, "", NULL }
{ "disable", RBAC_PERM_COMMAND_DISABLE, false, NULL, "", disableCommandTable },
{ NULL, 0, false, NULL, "", NULL }
};
return commandTable;
}