Core/RBAC: Move cheat commands to RBAC (using individual permissions)

This commit is contained in:
Spp
2013-09-02 10:01:34 +02:00
parent 59667ee606
commit 33d9da5060
4 changed files with 67 additions and 13 deletions
@@ -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';
+13 -2
View File
@@ -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
};
+11 -11
View File
@@ -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;
}