diff options
-rw-r--r-- | sql/updates/auth/2013_09_10_05_auth_misc.sql | 68 | ||||
-rw-r--r-- | sql/updates/world/2013_09_10_07_world_command.sql | 33 | ||||
-rw-r--r-- | src/server/game/Accounts/RBAC.h | 28 | ||||
-rw-r--r-- | src/server/scripts/Commands/cs_modify.cpp | 64 |
4 files changed, 161 insertions, 32 deletions
diff --git a/sql/updates/auth/2013_09_10_05_auth_misc.sql b/sql/updates/auth/2013_09_10_05_auth_misc.sql new file mode 100644 index 00000000000..607821854d3 --- /dev/null +++ b/sql/updates/auth/2013_09_10_05_auth_misc.sql @@ -0,0 +1,68 @@ +/* cs_modify.cpp */ + +SET @id = 542; + +-- Add new permissions +DELETE FROM `rbac_permissions` WHERE `id` BETWEEN @id AND @id+27; +INSERT INTO `rbac_permissions` (`id`, `name`) VALUES +(@id+0, 'morph'), +(@id+1, 'demorph'), +(@id+2, 'modify'), +(@id+3, 'modify arenapoints'), +(@id+4, 'modify bit'), +(@id+5, 'modify drunk'), +(@id+6, 'modify energy'), +(@id+7, 'modify faction'), +(@id+8, 'modify gender'), +(@id+9, 'modify honor'), +(@id+10, 'modify hp'), +(@id+11, 'modify mana'), +(@id+12, 'modify money'), +(@id+13, 'modify mount'), +(@id+14, 'modify phase'), +(@id+15, 'modify rage'), +(@id+16, 'modify reputation'), +(@id+17, 'modify runicpower'), +(@id+18, 'modify scale'), +(@id+19, 'modify speed'), +(@id+20, 'modify speed all'), +(@id+21, 'modify speed backwalk'), +(@id+22, 'modify speed fly'), +(@id+23, 'modify speed walk'), +(@id+24, 'modify speed swim'), +(@id+25, 'modify spell'), +(@id+26, 'modify standstate'), +(@id+27, 'modify talentpoints'); + + +-- Add permissions to "corresponding Commands Role" +DELETE FROM `rbac_role_permissions` WHERE `permissionId` BETWEEN @id AND @id+27; +INSERT INTO `rbac_role_permissions` (`roleId`, `permissionId`) VALUES +(3, @id+0), +(3, @id+1), +(2, @id+2), +(2, @id+3), +(2, @id+4), +(2, @id+5), +(2, @id+6), +(2, @id+7), +(3, @id+8), +(2, @id+9), +(2, @id+10), +(2, @id+11), +(2, @id+12), +(2, @id+13), +(4, @id+14), +(2, @id+15), +(3, @id+16), +(2, @id+17), +(2, @id+18), +(2, @id+19), +(2, @id+20), +(2, @id+21), +(2, @id+22), +(2, @id+23), +(2, @id+24), +(2, @id+25), +(3, @id+26), +(2, @id+27); diff --git a/sql/updates/world/2013_09_10_07_world_command.sql b/sql/updates/world/2013_09_10_07_world_command.sql new file mode 100644 index 00000000000..b07da9730d1 --- /dev/null +++ b/sql/updates/world/2013_09_10_07_world_command.sql @@ -0,0 +1,33 @@ +/* cs_modify.cpp */ + +SET @id = 542; + +-- Update command table with new RBAC permissions +UPDATE `command` SET `permission` = @id+0 WHERE `name` = 'morph'; +UPDATE `command` SET `permission` = @id+1 WHERE `name` = 'demorph'; +UPDATE `command` SET `permission` = @id+2 WHERE `name` = 'modify'; +UPDATE `command` SET `permission` = @id+3 WHERE `name` = 'modify arenapoints'; +UPDATE `command` SET `permission` = @id+4 WHERE `name` = 'modify bit'; +UPDATE `command` SET `permission` = @id+5 WHERE `name` = 'modify drunk'; +UPDATE `command` SET `permission` = @id+6 WHERE `name` = 'modify energy'; +UPDATE `command` SET `permission` = @id+7 WHERE `name` = 'modify faction'; +UPDATE `command` SET `permission` = @id+8 WHERE `name` = 'modify gender'; +UPDATE `command` SET `permission` = @id+9 WHERE `name` = 'modify honor'; +UPDATE `command` SET `permission` = @id+10 WHERE `name` = 'modify hp'; +UPDATE `command` SET `permission` = @id+11 WHERE `name` = 'modify mana'; +UPDATE `command` SET `permission` = @id+12 WHERE `name` = 'modify money'; +UPDATE `command` SET `permission` = @id+13 WHERE `name` = 'modify mount'; +UPDATE `command` SET `permission` = @id+14 WHERE `name` = 'modify phase'; +UPDATE `command` SET `permission` = @id+15 WHERE `name` = 'modify rage'; +UPDATE `command` SET `permission` = @id+16 WHERE `name` = 'modify reputation'; +UPDATE `command` SET `permission` = @id+17 WHERE `name` = 'modify runicpower'; +UPDATE `command` SET `permission` = @id+18 WHERE `name` = 'modify scale'; +UPDATE `command` SET `permission` = @id+19 WHERE `name` = 'modify speed'; +UPDATE `command` SET `permission` = @id+20 WHERE `name` = 'modify speed all'; +UPDATE `command` SET `permission` = @id+21 WHERE `name` = 'modify speed backwalk'; +UPDATE `command` SET `permission` = @id+22 WHERE `name` = 'modify speed fly'; +UPDATE `command` SET `permission` = @id+23 WHERE `name` = 'modify speed walk'; +UPDATE `command` SET `permission` = @id+24 WHERE `name` = 'modify speed swim'; +UPDATE `command` SET `permission` = @id+25 WHERE `name` = 'modify spell'; +UPDATE `command` SET `permission` = @id+26 WHERE `name` = 'modify standstate'; +UPDATE `command` SET `permission` = @id+27 WHERE `name` = 'modify talentpoints'; diff --git a/src/server/game/Accounts/RBAC.h b/src/server/game/Accounts/RBAC.h index 926b2769842..1d4a86107ec 100644 --- a/src/server/game/Accounts/RBAC.h +++ b/src/server/game/Accounts/RBAC.h @@ -441,6 +441,34 @@ enum RBACPermissions RBAC_PERM_COMMAND_MMAP_PATH = 539,
RBAC_PERM_COMMAND_MMAP_STATS = 540,
RBAC_PERM_COMMAND_MMAP_TESTAREA = 541,
+ RBAC_PERM_COMMAND_MORPH = 542,
+ RBAC_PERM_COMMAND_DEMORPH = 543,
+ RBAC_PERM_COMMAND_MODIFY = 544,
+ RBAC_PERM_COMMAND_MODIFY_ARENAPOINTS = 545,
+ RBAC_PERM_COMMAND_MODIFY_BIT = 546,
+ RBAC_PERM_COMMAND_MODIFY_DRUNK = 547,
+ RBAC_PERM_COMMAND_MODIFY_ENERGY = 548,
+ RBAC_PERM_COMMAND_MODIFY_FACTION = 549,
+ RBAC_PERM_COMMAND_MODIFY_GENDER = 550,
+ RBAC_PERM_COMMAND_MODIFY_HONOR = 551,
+ RBAC_PERM_COMMAND_MODIFY_HP = 552,
+ RBAC_PERM_COMMAND_MODIFY_MANA = 553,
+ RBAC_PERM_COMMAND_MODIFY_MONEY = 554,
+ RBAC_PERM_COMMAND_MODIFY_MOUNT = 555,
+ RBAC_PERM_COMMAND_MODIFY_PHASE = 556,
+ RBAC_PERM_COMMAND_MODIFY_RAGE = 557,
+ RBAC_PERM_COMMAND_MODIFY_REPUTATION = 558,
+ RBAC_PERM_COMMAND_MODIFY_RUNICPOWER = 559,
+ RBAC_PERM_COMMAND_MODIFY_SCALE = 560,
+ RBAC_PERM_COMMAND_MODIFY_SPEED = 561,
+ RBAC_PERM_COMMAND_MODIFY_SPEED_ALL = 562,
+ RBAC_PERM_COMMAND_MODIFY_SPEED_BACKWALK = 563,
+ RBAC_PERM_COMMAND_MODIFY_SPEED_FLY = 564,
+ RBAC_PERM_COMMAND_MODIFY_SPEED_WALK = 565,
+ RBAC_PERM_COMMAND_MODIFY_SPEED_SWIM = 566,
+ RBAC_PERM_COMMAND_MODIFY_SPELL = 567,
+ RBAC_PERM_COMMAND_MODIFY_STANDSTATE = 568,
+ RBAC_PERM_COMMAND_MODIFY_TALENTPOINTS = 569,
// custom permissions 1000+
RBAC_PERM_MAX
diff --git a/src/server/scripts/Commands/cs_modify.cpp b/src/server/scripts/Commands/cs_modify.cpp index c3d461f6170..ddd2522c8be 100644 --- a/src/server/scripts/Commands/cs_modify.cpp +++ b/src/server/scripts/Commands/cs_modify.cpp @@ -40,44 +40,44 @@ public: { static ChatCommand modifyspeedCommandTable[] = { - { "fly", RBAC_PERM_MODERATOR_COMMANDS, false, &HandleModifyFlyCommand, "", NULL }, - { "all", RBAC_PERM_MODERATOR_COMMANDS, false, &HandleModifyASpeedCommand, "", NULL }, - { "walk", RBAC_PERM_MODERATOR_COMMANDS, false, &HandleModifySpeedCommand, "", NULL }, - { "backwalk", RBAC_PERM_MODERATOR_COMMANDS, false, &HandleModifyBWalkCommand, "", NULL }, - { "swim", RBAC_PERM_MODERATOR_COMMANDS, false, &HandleModifySwimCommand, "", NULL }, - { "", RBAC_PERM_MODERATOR_COMMANDS, false, &HandleModifyASpeedCommand, "", NULL }, - { NULL, 0, false, NULL, "", NULL } + { "all", RBAC_PERM_COMMAND_MODIFY_SPEED_ALL, false, &HandleModifyASpeedCommand, "", NULL }, + { "backwalk", RBAC_PERM_COMMAND_MODIFY_SPEED_BACKWALK, false, &HandleModifyBWalkCommand, "", NULL }, + { "fly", RBAC_PERM_COMMAND_MODIFY_SPEED_FLY, false, &HandleModifyFlyCommand, "", NULL }, + { "walk", RBAC_PERM_COMMAND_MODIFY_SPEED_WALK, false, &HandleModifySpeedCommand, "", NULL }, + { "swim", RBAC_PERM_COMMAND_MODIFY_SPEED_SWIM, false, &HandleModifySwimCommand, "", NULL }, + { "", RBAC_PERM_COMMAND_MODIFY_SPEED, false, &HandleModifyASpeedCommand, "", NULL }, + { NULL, 0, false, NULL, "", NULL } }; static ChatCommand modifyCommandTable[] = { - { "hp", RBAC_PERM_MODERATOR_COMMANDS, false, &HandleModifyHPCommand, "", NULL }, - { "mana", RBAC_PERM_MODERATOR_COMMANDS, false, &HandleModifyManaCommand, "", NULL }, - { "rage", RBAC_PERM_MODERATOR_COMMANDS, false, &HandleModifyRageCommand, "", NULL }, - { "runicpower", RBAC_PERM_MODERATOR_COMMANDS, false, &HandleModifyRunicPowerCommand, "", NULL }, - { "energy", RBAC_PERM_MODERATOR_COMMANDS, false, &HandleModifyEnergyCommand, "", NULL }, - { "money", RBAC_PERM_MODERATOR_COMMANDS, false, &HandleModifyMoneyCommand, "", NULL }, - { "scale", RBAC_PERM_MODERATOR_COMMANDS, false, &HandleModifyScaleCommand, "", NULL }, - { "bit", RBAC_PERM_MODERATOR_COMMANDS, false, &HandleModifyBitCommand, "", NULL }, - { "faction", RBAC_PERM_MODERATOR_COMMANDS, false, &HandleModifyFactionCommand, "", NULL }, - { "spell", RBAC_PERM_MODERATOR_COMMANDS, false, &HandleModifySpellCommand, "", NULL }, - { "talentpoints", RBAC_PERM_MODERATOR_COMMANDS, false, &HandleModifyTalentCommand, "", NULL }, - { "mount", RBAC_PERM_MODERATOR_COMMANDS, false, &HandleModifyMountCommand, "", NULL }, - { "honor", RBAC_PERM_MODERATOR_COMMANDS, false, &HandleModifyHonorCommand, "", NULL }, - { "reputation", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleModifyRepCommand, "", NULL }, - { "arenapoints", RBAC_PERM_MODERATOR_COMMANDS, false, &HandleModifyArenaCommand, "", NULL }, - { "drunk", RBAC_PERM_MODERATOR_COMMANDS, false, &HandleModifyDrunkCommand, "", NULL }, - { "standstate", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleModifyStandStateCommand, "", NULL }, - { "phase", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleModifyPhaseCommand, "", NULL }, - { "gender", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleModifyGenderCommand, "", NULL }, - { "speed", RBAC_PERM_MODERATOR_COMMANDS, false, NULL, "", modifyspeedCommandTable }, - { NULL, 0, false, NULL, "", NULL } + { "arenapoints", RBAC_PERM_COMMAND_MODIFY_ARENAPOINTS, false, &HandleModifyArenaCommand, "", NULL }, + { "bit", RBAC_PERM_COMMAND_MODIFY_BIT, false, &HandleModifyBitCommand, "", NULL }, + { "drunk", RBAC_PERM_COMMAND_MODIFY_DRUNK, false, &HandleModifyDrunkCommand, "", NULL }, + { "energy", RBAC_PERM_COMMAND_MODIFY_ENERGY, false, &HandleModifyEnergyCommand, "", NULL }, + { "faction", RBAC_PERM_COMMAND_MODIFY_FACTION, false, &HandleModifyFactionCommand, "", NULL }, + { "gender", RBAC_PERM_COMMAND_MODIFY_GENDER, false, &HandleModifyGenderCommand, "", NULL }, + { "honor", RBAC_PERM_COMMAND_MODIFY_HONOR, false, &HandleModifyHonorCommand, "", NULL }, + { "hp", RBAC_PERM_COMMAND_MODIFY_HP, false, &HandleModifyHPCommand, "", NULL }, + { "mana", RBAC_PERM_COMMAND_MODIFY_MANA, false, &HandleModifyManaCommand, "", NULL }, + { "money", RBAC_PERM_COMMAND_MODIFY_MONEY, false, &HandleModifyMoneyCommand, "", NULL }, + { "mount", RBAC_PERM_COMMAND_MODIFY_MOUNT, false, &HandleModifyMountCommand, "", NULL }, + { "phase", RBAC_PERM_COMMAND_MODIFY_PHASE, false, &HandleModifyPhaseCommand, "", NULL }, + { "rage", RBAC_PERM_COMMAND_MODIFY_RAGE, false, &HandleModifyRageCommand, "", NULL }, + { "reputation", RBAC_PERM_COMMAND_MODIFY_REPUTATION, false, &HandleModifyRepCommand, "", NULL }, + { "runicpower", RBAC_PERM_COMMAND_MODIFY_RUNICPOWER, false, &HandleModifyRunicPowerCommand, "", NULL }, + { "scale", RBAC_PERM_COMMAND_MODIFY_SCALE, false, &HandleModifyScaleCommand, "", NULL }, + { "speed", RBAC_PERM_COMMAND_MODIFY_SPEED, false, NULL, "", modifyspeedCommandTable }, + { "spell", RBAC_PERM_COMMAND_MODIFY_SPELL, false, &HandleModifySpellCommand, "", NULL }, + { "standstate", RBAC_PERM_COMMAND_MODIFY_STANDSTATE, false, &HandleModifyStandStateCommand, "", NULL }, + { "talentpoints", RBAC_PERM_COMMAND_MODIFY_TALENTPOINTS, false, &HandleModifyTalentCommand, "", NULL }, + { NULL, 0, false, NULL, "", NULL } }; static ChatCommand commandTable[] = { - { "morph", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleModifyMorphCommand, "", NULL }, - { "demorph", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleDeMorphCommand, "", NULL }, - { "modify", RBAC_PERM_MODERATOR_COMMANDS, false, NULL, "", modifyCommandTable }, - { NULL, 0, false, NULL, "", NULL } + { "morph", RBAC_PERM_COMMAND_MORPH, false, &HandleModifyMorphCommand, "", NULL }, + { "demorph", RBAC_PERM_COMMAND_DEMORPH, false, &HandleDeMorphCommand, "", NULL }, + { "modify", RBAC_PERM_COMMAND_MODIFY, false, NULL, "", modifyCommandTable }, + { NULL, 0, false, NULL, "", NULL } }; return commandTable; } |