aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/auth/2013_08_30_01_auth_misc.sql2
-rw-r--r--sql/updates/auth/2013_08_30_02_auth_misc.sql25
-rw-r--r--sql/updates/world/2013_08_30_05_world_command.sql10
-rw-r--r--src/server/game/Accounts/RBAC.h9
-rw-r--r--src/server/scripts/Commands/cs_achievement.cpp8
-rw-r--r--src/server/scripts/Commands/cs_arena.cpp18
6 files changed, 58 insertions, 14 deletions
diff --git a/sql/updates/auth/2013_08_30_01_auth_misc.sql b/sql/updates/auth/2013_08_30_01_auth_misc.sql
index 743551163ce..096588ba2ab 100644
--- a/sql/updates/auth/2013_08_30_01_auth_misc.sql
+++ b/sql/updates/auth/2013_08_30_01_auth_misc.sql
@@ -1,5 +1,5 @@
-- Add new permissions
-DELETE FROM `rbac_permissions` WHERE `id` BETWEEN 200 AND 216;
+DELETE FROM `rbac_permissions` WHERE `id` BETWEEN 217 AND 229;
INSERT INTO `rbac_permissions` (`id`, `name`) VALUES
(217, 'Command: .account'),
(218, 'Command: .account addon'),
diff --git a/sql/updates/auth/2013_08_30_02_auth_misc.sql b/sql/updates/auth/2013_08_30_02_auth_misc.sql
new file mode 100644
index 00000000000..da5f187627b
--- /dev/null
+++ b/sql/updates/auth/2013_08_30_02_auth_misc.sql
@@ -0,0 +1,25 @@
+-- Add new permissions
+DELETE FROM `rbac_permissions` WHERE `id` BETWEEN 230 AND 238;
+INSERT INTO `rbac_permissions` (`id`, `name`) VALUES
+(230, 'achievement'),
+(231, 'achievement add'),
+(232, 'arena'),
+(233, 'arena captain'),
+(234, 'arena create'),
+(235, 'arena disband'),
+(236, 'arena info'),
+(237, 'arena lookup'),
+(238, 'arena rename');
+
+-- Add Permissions to "corresponding Commands Role"
+DELETE FROM `rbac_role_permissions` WHERE `permissionId` BETWEEN 230 AND 238;
+INSERT INTO `rbac_role_permissions` (`roleId`, `permissionId`) VALUES
+(4, 230),
+(4, 231),
+(3, 232),
+(4, 233),
+(4, 234),
+(4, 235),
+(3, 236),
+(3, 237),
+(4, 238);
diff --git a/sql/updates/world/2013_08_30_05_world_command.sql b/sql/updates/world/2013_08_30_05_world_command.sql
new file mode 100644
index 00000000000..017ab4fa03e
--- /dev/null
+++ b/sql/updates/world/2013_08_30_05_world_command.sql
@@ -0,0 +1,10 @@
+-- Update command table with new RBAC permissions
+UPDATE `command` SET `permission` = 230 WHERE `name` = 'achievement';
+UPDATE `command` SET `permission` = 231 WHERE `name` = 'achievement add';
+UPDATE `command` SET `permission` = 232 WHERE `name` = 'arena';
+UPDATE `command` SET `permission` = 233 WHERE `name` = 'arena captain';
+UPDATE `command` SET `permission` = 234 WHERE `name` = 'arena create';
+UPDATE `command` SET `permission` = 235 WHERE `name` = 'arena disband';
+UPDATE `command` SET `permission` = 236 WHERE `name` = 'arena info';
+UPDATE `command` SET `permission` = 237 WHERE `name` = 'arena lookup';
+UPDATE `command` SET `permission` = 238 WHERE `name` = 'arena rename';
diff --git a/src/server/game/Accounts/RBAC.h b/src/server/game/Accounts/RBAC.h
index aa1fa70cc70..f0e6f547ba3 100644
--- a/src/server/game/Accounts/RBAC.h
+++ b/src/server/game/Accounts/RBAC.h
@@ -127,6 +127,15 @@ enum RBACPermissions
RBAC_PERM_COMMAND_ACCOUNT_SET_ADDON = 227,
RBAC_PERM_COMMAND_ACCOUNT_SET_GMLEVEL = 228,
RBAC_PERM_COMMAND_ACCOUNT_SET_PASSWORD = 229,
+ RBAC_PERM_COMMAND_ACHIEVEMENT = 230,
+ RBAC_PERM_COMMAND_ACHIEVEMENT_ADD = 231,
+ RBAC_PERM_COMMAND_ARENA = 232,
+ RBAC_PERM_COMMAND_ARENA_CAPTAIN = 233,
+ RBAC_PERM_COMMAND_ARENA_CREATE = 234,
+ RBAC_PERM_COMMAND_ARENA_DISBAND = 235,
+ RBAC_PERM_COMMAND_ARENA_INFO = 236,
+ RBAC_PERM_COMMAND_ARENA_LOOKUP = 237,
+ RBAC_PERM_COMMAND_ARENA_RENAME = 238,
// custom permissions 1000+
RBAC_PERM_MAX
diff --git a/src/server/scripts/Commands/cs_achievement.cpp b/src/server/scripts/Commands/cs_achievement.cpp
index 1ea4b5b08db..bba55cd1fe8 100644
--- a/src/server/scripts/Commands/cs_achievement.cpp
+++ b/src/server/scripts/Commands/cs_achievement.cpp
@@ -37,13 +37,13 @@ public:
{
static ChatCommand achievementCommandTable[] =
{
- { "add", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleAchievementAddCommand, "", NULL },
- { NULL, 0, false, NULL, "", NULL }
+ { "add", RBAC_PERM_COMMAND_ACHIEVEMENT_ADD, false, &HandleAchievementAddCommand, "", NULL },
+ { NULL, 0, false, NULL, "", NULL }
};
static ChatCommand commandTable[] =
{
- { "achievement", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, NULL, "", achievementCommandTable },
- { NULL, 0, false, NULL, "", NULL }
+ { "achievement", RBAC_PERM_COMMAND_ACHIEVEMENT, false, NULL, "", achievementCommandTable },
+ { NULL, 0, false, NULL, "", NULL }
};
return commandTable;
}
diff --git a/src/server/scripts/Commands/cs_arena.cpp b/src/server/scripts/Commands/cs_arena.cpp
index ece9a316ac8..90e47fda19f 100644
--- a/src/server/scripts/Commands/cs_arena.cpp
+++ b/src/server/scripts/Commands/cs_arena.cpp
@@ -38,18 +38,18 @@ public:
{
static ChatCommand arenaCommandTable[] =
{
- { "create", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleArenaCreateCommand, "", NULL },
- { "disband", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleArenaDisbandCommand, "", NULL },
- { "rename", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleArenaRenameCommand, "", NULL },
- { "captain", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleArenaCaptainCommand, "", NULL },
- { "info", RBAC_PERM_GAMEMASTER_COMMANDS, true, &HandleArenaInfoCommand, "", NULL },
- { "lookup", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleArenaLookupCommand, "", NULL },
- { NULL, RBAC_PERM_GAMEMASTER_COMMANDS, false, NULL, "", NULL }
+ { "create", RBAC_PERM_COMMAND_ARENA_CREATE, true, &HandleArenaCreateCommand, "", NULL },
+ { "disband", RBAC_PERM_COMMAND_ARENA_DISBAND, true, &HandleArenaDisbandCommand, "", NULL },
+ { "rename", RBAC_PERM_COMMAND_ARENA_RENAME, true, &HandleArenaRenameCommand, "", NULL },
+ { "captain", RBAC_PERM_COMMAND_ARENA_CAPTAIN, false, &HandleArenaCaptainCommand, "", NULL },
+ { "info", RBAC_PERM_COMMAND_ARENA_INFO, true, &HandleArenaInfoCommand, "", NULL },
+ { "lookup", RBAC_PERM_COMMAND_ARENA_LOOKUP, false, &HandleArenaLookupCommand, "", NULL },
+ { NULL, 0, false, NULL, "", NULL }
};
static ChatCommand commandTable[] =
{
- { "arena", RBAC_PERM_GAMEMASTER_COMMANDS, false, NULL, "", arenaCommandTable },
- { NULL, RBAC_PERM_PLAYER_COMMANDS, false, NULL, "", NULL }
+ { "arena", RBAC_PERM_COMMAND_ARENA, false, NULL, "", arenaCommandTable },
+ { NULL, 0, false, NULL, "", NULL }
};
return commandTable;
}