Core/RBAC: Move cheat commands to RBAC (using individual permissions)
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
/* cs_cheat.cpp */
|
||||
|
||||
SET @id = 291;
|
||||
|
||||
-- Add new permissions
|
||||
DELETE FROM `rbac_permissions` WHERE `id` BETWEEN @id AND @id+8;
|
||||
INSERT INTO `rbac_permissions` (`id`, `name`) VALUES
|
||||
(@id+0, 'cheat'),
|
||||
(@id+1, 'cheat casttime'),
|
||||
(@id+2, 'cheat cooldown'),
|
||||
(@id+3, 'cheat explore'),
|
||||
(@id+4, 'cheat god'),
|
||||
(@id+5, 'cheat power'),
|
||||
(@id+6, 'cheat status'),
|
||||
(@id+7, 'cheat taxi'),
|
||||
(@id+8, 'cheat waterwalk');
|
||||
|
||||
-- Add permissions to "corresponding Commands Role"
|
||||
DELETE FROM `rbac_role_permissions` WHERE `permissionId` BETWEEN @id AND @id+8;
|
||||
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);
|
||||
@@ -0,0 +1,14 @@
|
||||
/* cs_cheat.cpp */
|
||||
|
||||
SET @id = 291;
|
||||
|
||||
-- Update command table with new RBAC permissions
|
||||
UPDATE `command` SET `permission` = @id+0 WHERE `name` = 'cheat';
|
||||
UPDATE `command` SET `permission` = @id+1 WHERE `name` = 'cheat casttime';
|
||||
UPDATE `command` SET `permission` = @id+2 WHERE `name` = 'cheat cooldown';
|
||||
UPDATE `command` SET `permission` = @id+3 WHERE `name` = 'cheat explore';
|
||||
UPDATE `command` SET `permission` = @id+4 WHERE `name` = 'cheat god';
|
||||
UPDATE `command` SET `permission` = @id+5 WHERE `name` = 'cheat power';
|
||||
UPDATE `command` SET `permission` = @id+6 WHERE `name` = 'cheat status';
|
||||
UPDATE `command` SET `permission` = @id+7 WHERE `name` = 'cheat taxi';
|
||||
UPDATE `command` SET `permission` = @id+8 WHERE `name` = 'cheat waterwalk';
|
||||
@@ -97,7 +97,7 @@ enum RBACPermissions
|
||||
RBAC_PERM_CHECK_FOR_LOWER_SECURITY = 47,
|
||||
RBAC_PERM_COMMANDS_PINFO_CHECK_PERSONAL_DATA = 48,
|
||||
RBAC_PERM_EMAIL_CONFIRM_FOR_PASS_CHANGE = 49,
|
||||
RBAC_PERM_MAY_CHECK_OWN_EMAIL = 50,
|
||||
RBAC_PERM_MAY_CHECK_OWN_EMAIL = 50,
|
||||
// Leave some space for core permissions
|
||||
RBAC_PERM_COMMAND_RBAC = 200,
|
||||
RBAC_PERM_COMMAND_RBAC_ACC = 201,
|
||||
@@ -166,8 +166,19 @@ 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_CHEAT = 291,
|
||||
RBAC_PERM_COMMAND_CHEAT_CASTTIME = 292,
|
||||
RBAC_PERM_COMMAND_CHEAT_COOLDOWN = 293,
|
||||
RBAC_PERM_COMMAND_CHEAT_EXPLORE = 294,
|
||||
RBAC_PERM_COMMAND_CHEAT_GOD = 295,
|
||||
RBAC_PERM_COMMAND_CHEAT_POWER = 296,
|
||||
RBAC_PERM_COMMAND_CHEAT_STATUS = 297,
|
||||
RBAC_PERM_COMMAND_CHEAT_TAXI = 298,
|
||||
RBAC_PERM_COMMAND_CHEAT_WATERWALK = 299,
|
||||
|
||||
// custom permissions 1000+
|
||||
// custom permissions 1000+
|
||||
RBAC_PERM_MAX
|
||||
};
|
||||
|
||||
|
||||
@@ -38,22 +38,22 @@ public:
|
||||
|
||||
static ChatCommand cheatCommandTable[] =
|
||||
{
|
||||
{ "god", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleGodModeCheatCommand, "", NULL },
|
||||
{ "casttime", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleCasttimeCheatCommand, "", NULL },
|
||||
{ "cooldown", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleCoolDownCheatCommand, "", NULL },
|
||||
{ "power", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandlePowerCheatCommand, "", NULL },
|
||||
{ "waterwalk", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleWaterWalkCheatCommand, "", NULL },
|
||||
{ "status", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleCheatStatusCommand, "", NULL },
|
||||
{ "taxi", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleTaxiCheatCommand, "", NULL },
|
||||
{ "explore", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleExploreCheatCommand, "", NULL },
|
||||
{ NULL, 0, false, NULL, "", NULL }
|
||||
{ "god", RBAC_PERM_COMMAND_CHEAT_GOD, false, &HandleGodModeCheatCommand, "", NULL },
|
||||
{ "casttime", RBAC_PERM_COMMAND_CHEAT_CASTTIME, false, &HandleCasttimeCheatCommand, "", NULL },
|
||||
{ "cooldown", RBAC_PERM_COMMAND_CHEAT_COOLDOWN, false, &HandleCoolDownCheatCommand, "", NULL },
|
||||
{ "power", RBAC_PERM_COMMAND_CHEAT_POWER, false, &HandlePowerCheatCommand, "", NULL },
|
||||
{ "waterwalk", RBAC_PERM_COMMAND_CHEAT_WATERWALK, false, &HandleWaterWalkCheatCommand, "", NULL },
|
||||
{ "status", RBAC_PERM_COMMAND_CHEAT_STATUS, false, &HandleCheatStatusCommand, "", NULL },
|
||||
{ "taxi", RBAC_PERM_COMMAND_CHEAT_TAXI, false, &HandleTaxiCheatCommand, "", NULL },
|
||||
{ "explore", RBAC_PERM_COMMAND_CHEAT_EXPLORE, false, &HandleExploreCheatCommand, "", NULL },
|
||||
{ NULL, 0, false, NULL, "", NULL }
|
||||
|
||||
};
|
||||
|
||||
static ChatCommand commandTable[] =
|
||||
{
|
||||
{ "cheat", RBAC_PERM_GAMEMASTER_COMMANDS, false, NULL, "", cheatCommandTable },
|
||||
{ NULL, 0, false, NULL, "", NULL }
|
||||
{ "cheat", RBAC_PERM_COMMAND_CHEAT, false, NULL, "", cheatCommandTable },
|
||||
{ NULL, 0, false, NULL, "", NULL }
|
||||
};
|
||||
return commandTable;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user