diff options
-rw-r--r-- | sql/updates/auth/2013_09_02_00_auth_misc.sql | 29 | ||||
-rw-r--r-- | sql/updates/world/2013_09_02_01_world_command.sql | 14 | ||||
-rw-r--r-- | src/server/game/Accounts/RBAC.h | 17 | ||||
-rw-r--r-- | src/server/scripts/Commands/cs_cheat.cpp | 22 |
4 files changed, 68 insertions, 14 deletions
diff --git a/sql/updates/auth/2013_09_02_00_auth_misc.sql b/sql/updates/auth/2013_09_02_00_auth_misc.sql new file mode 100644 index 00000000000..46a8054e086 --- /dev/null +++ b/sql/updates/auth/2013_09_02_00_auth_misc.sql @@ -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); diff --git a/sql/updates/world/2013_09_02_01_world_command.sql b/sql/updates/world/2013_09_02_01_world_command.sql new file mode 100644 index 00000000000..aab76efa562 --- /dev/null +++ b/sql/updates/world/2013_09_02_01_world_command.sql @@ -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'; diff --git a/src/server/game/Accounts/RBAC.h b/src/server/game/Accounts/RBAC.h index ab8354554ec..139aa8c93aa 100644 --- a/src/server/game/Accounts/RBAC.h +++ b/src/server/game/Accounts/RBAC.h @@ -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,
-
- // custom permissions 1000+ + // 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+
RBAC_PERM_MAX
};
diff --git a/src/server/scripts/Commands/cs_cheat.cpp b/src/server/scripts/Commands/cs_cheat.cpp index 874e79f64e4..4610b12808e 100644 --- a/src/server/scripts/Commands/cs_cheat.cpp +++ b/src/server/scripts/Commands/cs_cheat.cpp @@ -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; } |