Core/RBAC: Move Achievements and Arena commands to RBAC (using individual permissions)
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
-- Add new permissions
|
||||
DELETE FROM `rbac_permissions` WHERE `id` BETWEEN 200 AND 216;
|
||||
DELETE FROM `rbac_permissions` WHERE `id` BETWEEN 217 AND 229;
|
||||
INSERT INTO `rbac_permissions` (`id`, `name`) VALUES
|
||||
(217, 'Command: .account'),
|
||||
(218, 'Command: .account addon'),
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
-- Add new permissions
|
||||
DELETE FROM `rbac_permissions` WHERE `id` BETWEEN 230 AND 238;
|
||||
INSERT INTO `rbac_permissions` (`id`, `name`) VALUES
|
||||
(230, 'achievement'),
|
||||
(231, 'achievement add'),
|
||||
(232, 'arena'),
|
||||
(233, 'arena captain'),
|
||||
(234, 'arena create'),
|
||||
(235, 'arena disband'),
|
||||
(236, 'arena info'),
|
||||
(237, 'arena lookup'),
|
||||
(238, 'arena rename');
|
||||
|
||||
-- Add Permissions to "corresponding Commands Role"
|
||||
DELETE FROM `rbac_role_permissions` WHERE `permissionId` BETWEEN 230 AND 238;
|
||||
INSERT INTO `rbac_role_permissions` (`roleId`, `permissionId`) VALUES
|
||||
(4, 230),
|
||||
(4, 231),
|
||||
(3, 232),
|
||||
(4, 233),
|
||||
(4, 234),
|
||||
(4, 235),
|
||||
(3, 236),
|
||||
(3, 237),
|
||||
(4, 238);
|
||||
@@ -0,0 +1,10 @@
|
||||
-- Update command table with new RBAC permissions
|
||||
UPDATE `command` SET `permission` = 230 WHERE `name` = 'achievement';
|
||||
UPDATE `command` SET `permission` = 231 WHERE `name` = 'achievement add';
|
||||
UPDATE `command` SET `permission` = 232 WHERE `name` = 'arena';
|
||||
UPDATE `command` SET `permission` = 233 WHERE `name` = 'arena captain';
|
||||
UPDATE `command` SET `permission` = 234 WHERE `name` = 'arena create';
|
||||
UPDATE `command` SET `permission` = 235 WHERE `name` = 'arena disband';
|
||||
UPDATE `command` SET `permission` = 236 WHERE `name` = 'arena info';
|
||||
UPDATE `command` SET `permission` = 237 WHERE `name` = 'arena lookup';
|
||||
UPDATE `command` SET `permission` = 238 WHERE `name` = 'arena rename';
|
||||
@@ -127,6 +127,15 @@ enum RBACPermissions
|
||||
RBAC_PERM_COMMAND_ACCOUNT_SET_ADDON = 227,
|
||||
RBAC_PERM_COMMAND_ACCOUNT_SET_GMLEVEL = 228,
|
||||
RBAC_PERM_COMMAND_ACCOUNT_SET_PASSWORD = 229,
|
||||
RBAC_PERM_COMMAND_ACHIEVEMENT = 230,
|
||||
RBAC_PERM_COMMAND_ACHIEVEMENT_ADD = 231,
|
||||
RBAC_PERM_COMMAND_ARENA = 232,
|
||||
RBAC_PERM_COMMAND_ARENA_CAPTAIN = 233,
|
||||
RBAC_PERM_COMMAND_ARENA_CREATE = 234,
|
||||
RBAC_PERM_COMMAND_ARENA_DISBAND = 235,
|
||||
RBAC_PERM_COMMAND_ARENA_INFO = 236,
|
||||
RBAC_PERM_COMMAND_ARENA_LOOKUP = 237,
|
||||
RBAC_PERM_COMMAND_ARENA_RENAME = 238,
|
||||
|
||||
// custom permissions 1000+
|
||||
RBAC_PERM_MAX
|
||||
|
||||
@@ -37,13 +37,13 @@ public:
|
||||
{
|
||||
static ChatCommand achievementCommandTable[] =
|
||||
{
|
||||
{ "add", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleAchievementAddCommand, "", NULL },
|
||||
{ NULL, 0, false, NULL, "", NULL }
|
||||
{ "add", RBAC_PERM_COMMAND_ACHIEVEMENT_ADD, false, &HandleAchievementAddCommand, "", NULL },
|
||||
{ NULL, 0, false, NULL, "", NULL }
|
||||
};
|
||||
static ChatCommand commandTable[] =
|
||||
{
|
||||
{ "achievement", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, NULL, "", achievementCommandTable },
|
||||
{ NULL, 0, false, NULL, "", NULL }
|
||||
{ "achievement", RBAC_PERM_COMMAND_ACHIEVEMENT, false, NULL, "", achievementCommandTable },
|
||||
{ NULL, 0, false, NULL, "", NULL }
|
||||
};
|
||||
return commandTable;
|
||||
}
|
||||
|
||||
@@ -38,18 +38,18 @@ public:
|
||||
{
|
||||
static ChatCommand arenaCommandTable[] =
|
||||
{
|
||||
{ "create", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleArenaCreateCommand, "", NULL },
|
||||
{ "disband", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleArenaDisbandCommand, "", NULL },
|
||||
{ "rename", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleArenaRenameCommand, "", NULL },
|
||||
{ "captain", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleArenaCaptainCommand, "", NULL },
|
||||
{ "info", RBAC_PERM_GAMEMASTER_COMMANDS, true, &HandleArenaInfoCommand, "", NULL },
|
||||
{ "lookup", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleArenaLookupCommand, "", NULL },
|
||||
{ NULL, RBAC_PERM_GAMEMASTER_COMMANDS, false, NULL, "", NULL }
|
||||
{ "create", RBAC_PERM_COMMAND_ARENA_CREATE, true, &HandleArenaCreateCommand, "", NULL },
|
||||
{ "disband", RBAC_PERM_COMMAND_ARENA_DISBAND, true, &HandleArenaDisbandCommand, "", NULL },
|
||||
{ "rename", RBAC_PERM_COMMAND_ARENA_RENAME, true, &HandleArenaRenameCommand, "", NULL },
|
||||
{ "captain", RBAC_PERM_COMMAND_ARENA_CAPTAIN, false, &HandleArenaCaptainCommand, "", NULL },
|
||||
{ "info", RBAC_PERM_COMMAND_ARENA_INFO, true, &HandleArenaInfoCommand, "", NULL },
|
||||
{ "lookup", RBAC_PERM_COMMAND_ARENA_LOOKUP, false, &HandleArenaLookupCommand, "", NULL },
|
||||
{ NULL, 0, false, NULL, "", NULL }
|
||||
};
|
||||
static ChatCommand commandTable[] =
|
||||
{
|
||||
{ "arena", RBAC_PERM_GAMEMASTER_COMMANDS, false, NULL, "", arenaCommandTable },
|
||||
{ NULL, RBAC_PERM_PLAYER_COMMANDS, false, NULL, "", NULL }
|
||||
{ "arena", RBAC_PERM_COMMAND_ARENA, false, NULL, "", arenaCommandTable },
|
||||
{ NULL, 0, false, NULL, "", NULL }
|
||||
};
|
||||
return commandTable;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user