aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/auth/2013_09_10_05_auth_misc.sql68
-rw-r--r--sql/updates/world/2013_09_10_07_world_command.sql33
-rw-r--r--src/server/game/Accounts/RBAC.h28
-rw-r--r--src/server/scripts/Commands/cs_modify.cpp64
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;
}