aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/auth/2013_09_10_09_auth_misc.sql27
-rw-r--r--sql/updates/world/2013_09_10_09_world_command.sql2
-rw-r--r--sql/updates/world/2013_09_10_10_world_command.sql2
-rw-r--r--sql/updates/world/2013_09_10_11_world_command.sql13
-rw-r--r--src/server/game/Accounts/RBAC.h8
-rw-r--r--src/server/scripts/Commands/cs_reset.cpp20
6 files changed, 60 insertions, 12 deletions
diff --git a/sql/updates/auth/2013_09_10_09_auth_misc.sql b/sql/updates/auth/2013_09_10_09_auth_misc.sql
new file mode 100644
index 00000000000..8e0e340bfec
--- /dev/null
+++ b/sql/updates/auth/2013_09_10_09_auth_misc.sql
@@ -0,0 +1,27 @@
+/* cs_reset.cpp */
+
+SET @id = 710;
+
+-- Add new permissions
+DELETE FROM `rbac_permissions` WHERE `id` BETWEEN @id AND @id+7;
+INSERT INTO `rbac_permissions` (`id`, `name`) VALUES
+(@id+0, 'reset'),
+(@id+1, 'reset achievements'),
+(@id+2, 'reset honor'),
+(@id+3, 'reset level'),
+(@id+4, 'reset spells'),
+(@id+5, 'reset stats'),
+(@id+6, 'reset talents'),
+(@id+7, 'reset all');
+
+-- Add permissions to "corresponding Commands Role"
+DELETE FROM `rbac_role_permissions` WHERE `permissionId` BETWEEN @id AND @id+7;
+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);
diff --git a/sql/updates/world/2013_09_10_09_world_command.sql b/sql/updates/world/2013_09_10_09_world_command.sql
index 6523202aa24..6f4070ed588 100644
--- a/sql/updates/world/2013_09_10_09_world_command.sql
+++ b/sql/updates/world/2013_09_10_09_world_command.sql
@@ -1,4 +1,4 @@
-/* cs_npc.cpp */
+/* cs_quest.cpp */
SET @id = 602;
diff --git a/sql/updates/world/2013_09_10_10_world_command.sql b/sql/updates/world/2013_09_10_10_world_command.sql
index 4249ff1ad5b..f7c74f01537 100644
--- a/sql/updates/world/2013_09_10_10_world_command.sql
+++ b/sql/updates/world/2013_09_10_10_world_command.sql
@@ -1,4 +1,4 @@
-/* cs_npc.cpp */
+/* cs_reload.cpp */
SET @id = 607;
diff --git a/sql/updates/world/2013_09_10_11_world_command.sql b/sql/updates/world/2013_09_10_11_world_command.sql
new file mode 100644
index 00000000000..b6e1ca651c2
--- /dev/null
+++ b/sql/updates/world/2013_09_10_11_world_command.sql
@@ -0,0 +1,13 @@
+/* cs_reset.cpp */
+
+SET @id = 710;
+
+-- Update command table with new RBAC permissions
+UPDATE `command` SET `permission` = @id+0 WHERE `name` = 'reload';
+UPDATE `command` SET `permission` = @id+1 WHERE `name` = 'reload achievements';
+UPDATE `command` SET `permission` = @id+2 WHERE `name` = 'reload honor';
+UPDATE `command` SET `permission` = @id+3 WHERE `name` = 'reload level';
+UPDATE `command` SET `permission` = @id+4 WHERE `name` = 'reload spells';
+UPDATE `command` SET `permission` = @id+5 WHERE `name` = 'reload stats';
+UPDATE `command` SET `permission` = @id+6 WHERE `name` = 'reload talents';
+UPDATE `command` SET `permission` = @id+7 WHERE `name` = 'reload all';
diff --git a/src/server/game/Accounts/RBAC.h b/src/server/game/Accounts/RBAC.h
index 6d6e483a874..d6d778df40c 100644
--- a/src/server/game/Accounts/RBAC.h
+++ b/src/server/game/Accounts/RBAC.h
@@ -609,6 +609,14 @@ enum RBACPermissions
RBAC_PERM_COMMANDS_RELOAD_WARDEN_ACTION = 707,
RBAC_PERM_COMMANDS_RELOAD_WAYPOINT_DATA = 708,
RBAC_PERM_COMMANDS_RELOAD_WAYPOINT_SCRIPTS = 709,
+ RBAC_PERM_COMMAND_RESET = 710,
+ RBAC_PERM_COMMAND_RESET_ACHIEVEMENTS = 711,
+ RBAC_PERM_COMMAND_RESET_HONOR = 712,
+ RBAC_PERM_COMMAND_RESET_LEVEL = 713,
+ RBAC_PERM_COMMAND_RESET_SPELLS = 714,
+ RBAC_PERM_COMMAND_RESET_STATS = 715,
+ RBAC_PERM_COMMAND_RESET_TALENTS = 716,
+ RBAC_PERM_COMMAND_RESET_ALL = 717,
// custom permissions 1000+
RBAC_PERM_MAX
diff --git a/src/server/scripts/Commands/cs_reset.cpp b/src/server/scripts/Commands/cs_reset.cpp
index 3c95ceae4be..9b0b19bc51c 100644
--- a/src/server/scripts/Commands/cs_reset.cpp
+++ b/src/server/scripts/Commands/cs_reset.cpp
@@ -39,19 +39,19 @@ public:
{
static ChatCommand resetCommandTable[] =
{
- { "achievements", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleResetAchievementsCommand, "", NULL },
- { "honor", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleResetHonorCommand, "", NULL },
- { "level", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleResetLevelCommand, "", NULL },
- { "spells", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleResetSpellsCommand, "", NULL },
- { "stats", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleResetStatsCommand, "", NULL },
- { "talents", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleResetTalentsCommand, "", NULL },
- { "all", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleResetAllCommand, "", NULL },
- { NULL, 0, false, NULL, "", NULL }
+ { "achievements", RBAC_PERM_COMMAND_RESET_ACHIEVEMENTS, true, &HandleResetAchievementsCommand, "", NULL },
+ { "honor", RBAC_PERM_COMMAND_RESET_HONOR, true, &HandleResetHonorCommand, "", NULL },
+ { "level", RBAC_PERM_COMMAND_RESET_LEVEL, true, &HandleResetLevelCommand, "", NULL },
+ { "spells", RBAC_PERM_COMMAND_RESET_SPELLS, true, &HandleResetSpellsCommand, "", NULL },
+ { "stats", RBAC_PERM_COMMAND_RESET_STATS, true, &HandleResetStatsCommand, "", NULL },
+ { "talents", RBAC_PERM_COMMAND_RESET_TALENTS, true, &HandleResetTalentsCommand, "", NULL },
+ { "all", RBAC_PERM_COMMAND_RESET_ALL, true, &HandleResetAllCommand, "", NULL },
+ { NULL, 0, false, NULL, "", NULL }
};
static ChatCommand commandTable[] =
{
- { "reset", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, NULL, "", resetCommandTable },
- { NULL, 0, false, NULL, "", NULL }
+ { "reset", RBAC_PERM_COMMAND_RESET, true, NULL, "", resetCommandTable },
+ { NULL, 0, false, NULL, "", NULL }
};
return commandTable;
}