Core/RBAC: Move cast and characters commands to RBAC (using individual permissions)

This commit is contained in:
Nay
2013-09-02 13:25:07 +01:00
parent f3487aa0e1
commit 28f9317698
7 changed files with 159 additions and 33 deletions
@@ -0,0 +1,23 @@
/* cs_cast.cpp */
SET @id = 263;
-- Add new permissions
DELETE FROM `rbac_permissions` WHERE `id` BETWEEN @id AND @id+5;
INSERT INTO `rbac_permissions` (`id`, `name`) VALUES
(@id+0, 'cast'),
(@id+1, 'cast back'),
(@id+2, 'cast dist'),
(@id+3, 'cast self'),
(@id+4, 'cast target'),
(@id+5, 'cast dest');
-- 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);
@@ -0,0 +1,47 @@
/* cs_character.cpp */
SET @id = 273;
-- Add new permissions
DELETE FROM `rbac_permissions` WHERE `id` BETWEEN @id AND @id+17;
INSERT INTO `rbac_permissions` (`id`, `name`) VALUES
(@id+0 , 'character'),
(@id+1 , 'character customize'),
(@id+2 , 'character changefaction'),
(@id+3 , 'character changerace'),
(@id+4 , 'character deleted'),
-- (@id+5 , 'character deleted delete'),
(@id+6 , 'character deleted list'),
(@id+7 , 'character deleted restore'),
-- (@id+8 , 'character deleted old'),
-- (@id+9 , 'character erase'),
(@id+10, 'character level'),
(@id+11, 'character rename'),
(@id+12, 'character reputation'),
(@id+13, 'character titles'),
(@id+14, 'levelup'),
(@id+15, 'pdump'),
(@id+16, 'pdump load'),
(@id+17, 'pdump write');
-- Add permissions to "corresponding Commands Role"
DELETE FROM `rbac_role_permissions` WHERE `permissionId` BETWEEN @id AND @id+17;
INSERT INTO `rbac_role_permissions` (`roleId`, `permissionId`) VALUES
(3, @id+0 ),
(3, @id+1 ),
(3, @id+2 ),
(3, @id+3 ),
(3, @id+4 ),
-- (c, @id+5 ),
(4, @id+6 ),
(4, @id+7 ),
-- (c, @id+8 ),
-- (c, @id+9 ),
(4, @id+10),
(3, @id+11),
(3, @id+12),
(3, @id+13),
(4, @id+14),
(4, @id+15),
(4, @id+16),
(4, @id+17);
@@ -0,0 +1,11 @@
/* cs_cast.cpp */
SET @id = 263;
-- Update command table with new RBAC permissions
UPDATE `command` SET `permission` = @id+0 WHERE `name` = 'cast';
UPDATE `command` SET `permission` = @id+1 WHERE `name` = 'cast back';
UPDATE `command` SET `permission` = @id+2 WHERE `name` = 'cast dist';
UPDATE `command` SET `permission` = @id+3 WHERE `name` = 'cast self';
UPDATE `command` SET `permission` = @id+4 WHERE `name` = 'cast target';
UPDATE `command` SET `permission` = @id+5 WHERE `name` = 'cast dest';
@@ -0,0 +1,23 @@
/* cs_character.cpp */
SET @id = 273;
-- Update command table with new RBAC permissions
UPDATE `command` SET `permission` = @id+0 WHERE `name` = 'character';
UPDATE `command` SET `permission` = @id+1 WHERE `name` = 'character customize';
UPDATE `command` SET `permission` = @id+2 WHERE `name` = 'character changefaction';
UPDATE `command` SET `permission` = @id+3 WHERE `name` = 'character changerace';
UPDATE `command` SET `permission` = @id+4 WHERE `name` = 'character deleted';
UPDATE `command` SET `permission` = @id+5 WHERE `name` = 'character deleted delete';
UPDATE `command` SET `permission` = @id+6 WHERE `name` = 'character deleted list';
UPDATE `command` SET `permission` = @id+7 WHERE `name` = 'character deleted restore';
UPDATE `command` SET `permission` = @id+8 WHERE `name` = 'character deleted old';
UPDATE `command` SET `permission` = @id+9 WHERE `name` = 'character erase';
UPDATE `command` SET `permission` = @id+10 WHERE `name` = 'character level';
UPDATE `command` SET `permission` = @id+11 WHERE `name` = 'character rename';
UPDATE `command` SET `permission` = @id+12 WHERE `name` = 'character reputation';
UPDATE `command` SET `permission` = @id+13 WHERE `name` = 'character titles';
UPDATE `command` SET `permission` = @id+14 WHERE `name` = 'levelup';
UPDATE `command` SET `permission` = @id+15 WHERE `name` = 'pdump';
UPDATE `command` SET `permission` = @id+16 WHERE `name` = 'pdump load';
UPDATE `command` SET `permission` = @id+17 WHERE `name` = 'pdump write';
+24 -2
View File
@@ -166,8 +166,30 @@ enum RBACPermissions
RBAC_PERM_COMMAND_ACCOUNT_SET_SEC = 264,
RBAC_PERM_COMMAND_ACCOUNT_SET_SEC_EMAIL = 265,
RBAC_PERM_COMMAND_ACCOUNT_SET_SEC_REGMAIL = 266,
// 6 reserved for cast (267-272)
// 18 reserved for character (273-290)
RBAC_PERM_COMMAND_CAST = 267,
RBAC_PERM_COMMAND_CAST_BACK = 268,
RBAC_PERM_COMMAND_CAST_DIST = 269,
RBAC_PERM_COMMAND_CAST_SELF = 270,
RBAC_PERM_COMMAND_CAST_TARGET = 271,
RBAC_PERM_COMMAND_CAST_DEST = 272,
RBAC_PERM_COMMAND_CHARACTER = 273,
RBAC_PERM_COMMAND_CHARACTER_CUSTOMIZE = 274,
RBAC_PERM_COMMAND_CHARACTER_CHANGEFACTION = 275,
RBAC_PERM_COMMAND_CHARACTER_CHANGERACE = 276,
RBAC_PERM_COMMAND_CHARACTER_DELETED = 277,
RBAC_PERM_COMMAND_CHARACTER_DELETED_DELETE = 278, // Not in DB - console
RBAC_PERM_COMMAND_CHARACTER_DELETED_LIST = 279,
RBAC_PERM_COMMAND_CHARACTER_DELETED_RESTORE = 280,
RBAC_PERM_COMMAND_CHARACTER_DELETED_OLD = 281, // Not in DB - console
RBAC_PERM_COMMAND_CHARACTER_ERASE = 282, // Not in DB - console
RBAC_PERM_COMMAND_CHARACTER_LEVEL = 283,
RBAC_PERM_COMMAND_CHARACTER_RENAME = 284,
RBAC_PERM_COMMAND_CHARACTER_REPUTATION = 285,
RBAC_PERM_COMMAND_CHARACTER_TITLES = 286,
RBAC_PERM_COMMAND_LEVELUP = 287,
RBAC_PERM_COMMAND_PDUMP = 288,
RBAC_PERM_COMMAND_PDUMP_LOAD = 289,
RBAC_PERM_COMMAND_PDUMP_WRITE = 290,
RBAC_PERM_COMMAND_CHEAT = 291,
RBAC_PERM_COMMAND_CHEAT_CASTTIME = 292,
RBAC_PERM_COMMAND_CHEAT_COOLDOWN = 293,
+9 -9
View File
@@ -37,18 +37,18 @@ public:
{
static ChatCommand castCommandTable[] =
{
{ "back", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleCastBackCommand, "", NULL },
{ "dist", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleCastDistCommand, "", NULL },
{ "self", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleCastSelfCommand, "", NULL },
{ "target", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleCastTargetCommad, "", NULL },
{ "dest", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleCastDestCommand, "", NULL },
{ "", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleCastCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
{ "back", RBAC_PERM_COMMAND_CAST_BACK, false, &HandleCastBackCommand, "", NULL },
{ "dist", RBAC_PERM_COMMAND_CAST_DIST, false, &HandleCastDistCommand, "", NULL },
{ "self", RBAC_PERM_COMMAND_CAST_SELF, false, &HandleCastSelfCommand, "", NULL },
{ "target", RBAC_PERM_COMMAND_CAST_TARGET, false, &HandleCastTargetCommad, "", NULL },
{ "dest", RBAC_PERM_COMMAND_CAST_DEST, false, &HandleCastDestCommand, "", NULL },
{ "", RBAC_PERM_COMMAND_CAST, false, &HandleCastCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
};
static ChatCommand commandTable[] =
{
{ "cast", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, NULL, "", castCommandTable },
{ NULL, 0, false, NULL, "", NULL }
{ "cast", RBAC_PERM_COMMAND_CAST, false, NULL, "", castCommandTable },
{ NULL, 0, false, NULL, "", NULL }
};
return commandTable;
}
+22 -22
View File
@@ -39,39 +39,39 @@ public:
{
static ChatCommand pdumpCommandTable[] =
{
{ "load", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandlePDumpLoadCommand, "", NULL },
{ "write", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandlePDumpWriteCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
{ "load", RBAC_PERM_COMMAND_PDUMP_LOAD, true, &HandlePDumpLoadCommand, "", NULL },
{ "write", RBAC_PERM_COMMAND_PDUMP_WRITE, true, &HandlePDumpWriteCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
};
static ChatCommand characterDeletedCommandTable[] =
{
{ "delete", RBAC_PERM_CONSOLE_COMMANDS, true, &HandleCharacterDeletedDeleteCommand, "", NULL },
{ "list", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleCharacterDeletedListCommand, "", NULL },
{ "restore", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleCharacterDeletedRestoreCommand, "", NULL },
{ "old", RBAC_PERM_CONSOLE_COMMANDS, true, &HandleCharacterDeletedOldCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
{ "delete", RBAC_PERM_COMMAND_CHARACTER_DELETED_DELETE, true, &HandleCharacterDeletedDeleteCommand, "", NULL },
{ "list", RBAC_PERM_COMMAND_CHARACTER_DELETED_LIST, true, &HandleCharacterDeletedListCommand, "", NULL },
{ "restore", RBAC_PERM_COMMAND_CHARACTER_DELETED_RESTORE, true, &HandleCharacterDeletedRestoreCommand, "", NULL },
{ "old", RBAC_PERM_COMMAND_CHARACTER_DELETED_OLD, true, &HandleCharacterDeletedOldCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
};
static ChatCommand characterCommandTable[] =
{
{ "customize", RBAC_PERM_GAMEMASTER_COMMANDS, true, &HandleCharacterCustomizeCommand, "", NULL },
{ "changefaction", RBAC_PERM_GAMEMASTER_COMMANDS, true, &HandleCharacterChangeFactionCommand, "", NULL },
{ "changerace", RBAC_PERM_GAMEMASTER_COMMANDS, true, &HandleCharacterChangeRaceCommand, "", NULL },
{ "deleted", RBAC_PERM_GAMEMASTER_COMMANDS, true, NULL, "", characterDeletedCommandTable },
{ "erase", RBAC_PERM_CONSOLE_COMMANDS, true, &HandleCharacterEraseCommand, "", NULL },
{ "level", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleCharacterLevelCommand, "", NULL },
{ "rename", RBAC_PERM_GAMEMASTER_COMMANDS, true, &HandleCharacterRenameCommand, "", NULL },
{ "reputation", RBAC_PERM_GAMEMASTER_COMMANDS, true, &HandleCharacterReputationCommand, "", NULL },
{ "titles", RBAC_PERM_GAMEMASTER_COMMANDS, true, &HandleCharacterTitlesCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
{ "customize", RBAC_PERM_COMMAND_CHARACTER_CUSTOMIZE, true, &HandleCharacterCustomizeCommand, "", NULL },
{ "changefaction", RBAC_PERM_COMMAND_CHARACTER_CHANGEFACTION, true, &HandleCharacterChangeFactionCommand, "", NULL },
{ "changerace", RBAC_PERM_COMMAND_CHARACTER_CHANGERACE, true, &HandleCharacterChangeRaceCommand, "", NULL },
{ "deleted", RBAC_PERM_COMMAND_CHARACTER_DELETED, true, NULL, "", characterDeletedCommandTable },
{ "erase", RBAC_PERM_COMMAND_CHARACTER_ERASE, true, &HandleCharacterEraseCommand, "", NULL },
{ "level", RBAC_PERM_COMMAND_CHARACTER_LEVEL, true, &HandleCharacterLevelCommand, "", NULL },
{ "rename", RBAC_PERM_COMMAND_CHARACTER_RENAME, true, &HandleCharacterRenameCommand, "", NULL },
{ "reputation", RBAC_PERM_COMMAND_CHARACTER_REPUTATION, true, &HandleCharacterReputationCommand, "", NULL },
{ "titles", RBAC_PERM_COMMAND_CHARACTER_TITLES, true, &HandleCharacterTitlesCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
};
static ChatCommand commandTable[] =
{
{ "character", RBAC_PERM_GAMEMASTER_COMMANDS, true, NULL, "", characterCommandTable },
{ "levelup", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleLevelUpCommand, "", NULL },
{ "pdump", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, NULL, "", pdumpCommandTable },
{ NULL, 0, false, NULL, "", NULL }
{ "character", RBAC_PERM_COMMAND_CHARACTER, true, NULL, "", characterCommandTable },
{ "levelup", RBAC_PERM_COMMAND_LEVELUP, false, &HandleLevelUpCommand, "", NULL },
{ "pdump", RBAC_PERM_COMMAND_PDUMP, true, NULL, "", pdumpCommandTable },
{ NULL, 0, false, NULL, "", NULL }
};
return commandTable;
}