Core/RBAC: Move Achievements and Arena commands to RBAC (using individual permissions)

This commit is contained in:
Spp
2013-08-30 16:14:00 +02:00
parent 109188a203
commit 2b69f83823
6 changed files with 58 additions and 14 deletions
+1 -1
View File
@@ -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';
+9
View File
@@ -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;
}
+9 -9
View File
@@ -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;
}