Core/RBAC: Move cast and characters commands to RBAC (using individual permissions)
This commit is contained in:
@@ -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';
|
||||
@@ -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,
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user