aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/auth/2013_09_10_07_auth_misc.sql21
-rw-r--r--sql/updates/world/2013_09_10_09_world_command.sql10
-rw-r--r--src/server/game/Accounts/RBAC.h5
-rw-r--r--src/server/scripts/Commands/cs_quest.cpp14
4 files changed, 43 insertions, 7 deletions
diff --git a/sql/updates/auth/2013_09_10_07_auth_misc.sql b/sql/updates/auth/2013_09_10_07_auth_misc.sql
new file mode 100644
index 00000000000..9988220d878
--- /dev/null
+++ b/sql/updates/auth/2013_09_10_07_auth_misc.sql
@@ -0,0 +1,21 @@
+/* cs_quest.cpp */
+
+SET @id = 602;
+
+-- Add new permissions
+DELETE FROM `rbac_permissions` WHERE `id` BETWEEN @id AND @id+4;
+INSERT INTO `rbac_permissions` (`id`, `name`) VALUES
+(@id+0, 'quest'),
+(@id+1, 'quest add'),
+(@id+2, 'quest complete'),
+(@id+3, 'quest remove'),
+(@id+4, 'quest reward');
+
+-- Add permissions to "corresponding Commands Role"
+DELETE FROM `rbac_role_permissions` WHERE `permissionId` BETWEEN @id AND @id+4;
+INSERT INTO `rbac_role_permissions` (`roleId`, `permissionId`) VALUES
+(4, @id+0),
+(4, @id+1),
+(4, @id+2),
+(4, @id+3),
+(4, @id+4);
diff --git a/sql/updates/world/2013_09_10_09_world_command.sql b/sql/updates/world/2013_09_10_09_world_command.sql
new file mode 100644
index 00000000000..6523202aa24
--- /dev/null
+++ b/sql/updates/world/2013_09_10_09_world_command.sql
@@ -0,0 +1,10 @@
+/* cs_npc.cpp */
+
+SET @id = 602;
+
+-- Update command table with new RBAC permissions
+UPDATE `command` SET `permission` = @id+0 WHERE `name` = 'quest';
+UPDATE `command` SET `permission` = @id+1 WHERE `name` = 'quest add';
+UPDATE `command` SET `permission` = @id+2 WHERE `name` = 'quest complete';
+UPDATE `command` SET `permission` = @id+3 WHERE `name` = 'quest remove';
+UPDATE `command` SET `permission` = @id+4 WHERE `name` = 'quest reward';
diff --git a/src/server/game/Accounts/RBAC.h b/src/server/game/Accounts/RBAC.h
index 3bdb8392656..8d739554d46 100644
--- a/src/server/game/Accounts/RBAC.h
+++ b/src/server/game/Accounts/RBAC.h
@@ -501,6 +501,11 @@ enum RBACPermissions
RBAC_PERM_COMMAND_NPC_WHISPER = 599,
RBAC_PERM_COMMAND_NPC_YELL = 600,
RBAC_PERM_COMMAND_NPC_TAME = 601,
+ RBAC_PERM_COMMAND_QUEST = 602,
+ RBAC_PERM_COMMAND_QUEST_ADD = 603,
+ RBAC_PERM_COMMAND_QUEST_COMPLETE = 604,
+ RBAC_PERM_COMMAND_QUEST_REMOVE = 605,
+ RBAC_PERM_COMMAND_QUEST_REWARD = 606,
// custom permissions 1000+
RBAC_PERM_MAX
diff --git a/src/server/scripts/Commands/cs_quest.cpp b/src/server/scripts/Commands/cs_quest.cpp
index 20515eb0921..3ad1fea74a2 100644
--- a/src/server/scripts/Commands/cs_quest.cpp
+++ b/src/server/scripts/Commands/cs_quest.cpp
@@ -37,16 +37,16 @@ public:
{
static ChatCommand questCommandTable[] =
{
- { "add", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleQuestAdd, "", NULL },
- { "complete", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleQuestComplete, "", NULL },
- { "remove", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleQuestRemove, "", NULL },
- { "reward", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleQuestReward, "", NULL },
- { NULL, RBAC_PERM_PLAYER_COMMANDS, false, NULL, "", NULL }
+ { "add", RBAC_PERM_COMMAND_QUEST_ADD, false, &HandleQuestAdd, "", NULL },
+ { "complete", RBAC_PERM_COMMAND_QUEST_COMPLETE, false, &HandleQuestComplete, "", NULL },
+ { "remove", RBAC_PERM_COMMAND_QUEST_REMOVE, false, &HandleQuestRemove, "", NULL },
+ { "reward", RBAC_PERM_COMMAND_QUEST_REWARD, false, &HandleQuestReward, "", NULL },
+ { NULL, 0, false, NULL, "", NULL }
};
static ChatCommand commandTable[] =
{
- { "quest", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, NULL, "", questCommandTable },
- { NULL, RBAC_PERM_PLAYER_COMMANDS, false, NULL, "", NULL }
+ { "quest", RBAC_PERM_COMMAND_QUEST, false, NULL, "", questCommandTable },
+ { NULL, 0, false, NULL, "", NULL }
};
return commandTable;
}