mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-24 19:06:49 +01:00
Core/RBAC: Move disable commands to RBAC (using individual permissions)
This commit is contained in:
49
sql/updates/auth/2013_09_02_03_auth_misc.sql
Normal file
49
sql/updates/auth/2013_09_02_03_auth_misc.sql
Normal 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);
|
||||
24
sql/updates/world/2013_09_02_04_world_command.sql
Normal file
24
sql/updates/world/2013_09_02_04_world_command.sql
Normal 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');
|
||||
@@ -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
|
||||
};
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user