aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSpp <spp@jorge.gr>2013-09-10 15:26:48 +0200
committerSpp <spp@jorge.gr>2013-09-10 15:26:48 +0200
commit78363e11b51c42c7f1d7a9598629531bb353a8ad (patch)
tree18d29a890ccda5fced350a9be7160a289ba3ab64
parentb10241876e6c9d45fb1582bdcf553bcb24262df7 (diff)
Core/RBAC: Move titles and wp commands to RBAC (using individual permissions)
-rw-r--r--sql/updates/auth/2013_09_10_13_auth_misc.sql39
-rw-r--r--sql/updates/world/2013_09_10_15_world_command.sql25
-rw-r--r--src/server/game/Accounts/RBAC.h14
-rw-r--r--src/server/scripts/Commands/cs_titles.cpp18
-rw-r--r--src/server/scripts/Commands/cs_wp.cpp20
5 files changed, 97 insertions, 19 deletions
diff --git a/sql/updates/auth/2013_09_10_13_auth_misc.sql b/sql/updates/auth/2013_09_10_13_auth_misc.sql
new file mode 100644
index 00000000000..825028dcb5a
--- /dev/null
+++ b/sql/updates/auth/2013_09_10_13_auth_misc.sql
@@ -0,0 +1,39 @@
+/* cs_titles.cpp & cs_wp.cpp */
+
+SET @id = 761;
+
+-- Add new permissions
+DELETE FROM `rbac_permissions` WHERE `id` BETWEEN @id AND @id+13;
+INSERT INTO `rbac_permissions` (`id`, `name`) VALUES
+(@id+0, 'titles'),
+(@id+1, 'titles add'),
+(@id+2, 'titles current'),
+(@id+3, 'titles remove'),
+(@id+4, 'titles set'),
+(@id+5, 'titles set mask'),
+(@id+6, 'titles wp'),
+(@id+7, 'titles wp add'),
+(@id+8, 'titles wp event'),
+(@id+9, 'titles wp load'),
+(@id+10, 'titles wp modify'),
+(@id+11, 'titles wp unload'),
+(@id+12, 'titles wp reload'),
+(@id+13, 'titles wp show');
+
+-- Add permissions to "corresponding Commands Role"
+DELETE FROM `rbac_role_permissions` WHERE `permissionId` BETWEEN @id AND @id+13;
+INSERT INTO `rbac_role_permissions` (`roleId`, `permissionId`) VALUES
+(3, @id+0),
+(3, @id+1),
+(3, @id+2),
+(3, @id+3),
+(3, @id+4),
+(3, @id+5),
+(3, @id+6),
+(3, @id+7),
+(3, @id+8),
+(3, @id+9),
+(3, @id+10),
+(3, @id+11),
+(4, @id+12),
+(3, @id+13);
diff --git a/sql/updates/world/2013_09_10_15_world_command.sql b/sql/updates/world/2013_09_10_15_world_command.sql
new file mode 100644
index 00000000000..f3601a3041b
--- /dev/null
+++ b/sql/updates/world/2013_09_10_15_world_command.sql
@@ -0,0 +1,25 @@
+/* cs_titles.cpp & cs_wp.cpp */
+
+SET @id = 761;
+
+-- Update command table with new RBAC permissions
+UPDATE `command` SET `permission` = @id+0 WHERE `name` = 'tele';
+UPDATE `command` SET `permission` = @id+0 WHERE `name` = 'ticket';
+UPDATE `command` SET `permission` = @id+1 WHERE `name` = 'ticket assign';
+UPDATE `command` SET `permission` = @id+2 WHERE `name` = 'ticket close';
+UPDATE `command` SET `permission` = @id+3 WHERE `name` = 'ticket closedlist';
+UPDATE `command` SET `permission` = @id+4 WHERE `name` = 'ticket comment';
+UPDATE `command` SET `permission` = @id+5 WHERE `name` = 'ticket complete';
+UPDATE `command` SET `permission` = @id+6 WHERE `name` = 'ticket delete';
+UPDATE `command` SET `permission` = @id+7 WHERE `name` = 'ticket escalate';
+UPDATE `command` SET `permission` = @id+8 WHERE `name` = 'ticket escalatedlist';
+UPDATE `command` SET `permission` = @id+9 WHERE `name` = 'ticket list';
+UPDATE `command` SET `permission` = @id+10 WHERE `name` = 'ticket onlinelist';
+UPDATE `command` SET `permission` = @id+11 WHERE `name` = 'ticket reset';
+UPDATE `command` SET `permission` = @id+12 WHERE `name` = 'ticket response';
+UPDATE `command` SET `permission` = @id+13 WHERE `name` = 'ticket response append';
+UPDATE `command` SET `permission` = @id+14 WHERE `name` = 'ticket response appendln';
+UPDATE `command` SET `permission` = @id+15 WHERE `name` = 'ticket togglesystem';
+UPDATE `command` SET `permission` = @id+16 WHERE `name` = 'ticket unassign';
+UPDATE `command` SET `permission` = @id+17 WHERE `name` = 'ticket viewid';
+UPDATE `command` SET `permission` = @id+18 WHERE `name` = 'ticket viewname';
diff --git a/src/server/game/Accounts/RBAC.h b/src/server/game/Accounts/RBAC.h
index f2a96145957..3d28ccca9da 100644
--- a/src/server/game/Accounts/RBAC.h
+++ b/src/server/game/Accounts/RBAC.h
@@ -660,6 +660,20 @@ enum RBACPermissions
RBAC_PERM_COMMAND_TICKET_UNASSIGN = 758,
RBAC_PERM_COMMAND_TICKET_VIEWID = 759,
RBAC_PERM_COMMAND_TICKET_VIEWNAME = 760,
+ RBAC_PERM_COMMAND_TITLES = 761,
+ RBAC_PERM_COMMAND_TITLES_ADD = 762,
+ RBAC_PERM_COMMAND_TITLES_CURRENT = 763,
+ RBAC_PERM_COMMAND_TITLES_REMOVE = 764,
+ RBAC_PERM_COMMAND_TITLES_SET = 765,
+ RBAC_PERM_COMMAND_TITLES_SET_MASK = 766,
+ RBAC_PERM_COMMAND_WP = 767,
+ RBAC_PERM_COMMAND_WP_ADD = 768,
+ RBAC_PERM_COMMAND_WP_EVENT = 769,
+ RBAC_PERM_COMMAND_WP_LOAD = 770,
+ RBAC_PERM_COMMAND_WP_MODIFY = 771,
+ RBAC_PERM_COMMAND_WP_UNLOAD = 772,
+ RBAC_PERM_COMMAND_WP_RELOAD = 773,
+ RBAC_PERM_COMMAND_WP_SHOW = 774,
// custom permissions 1000+
RBAC_PERM_MAX
diff --git a/src/server/scripts/Commands/cs_titles.cpp b/src/server/scripts/Commands/cs_titles.cpp
index 1ffb7206f68..f6fd3170bbc 100644
--- a/src/server/scripts/Commands/cs_titles.cpp
+++ b/src/server/scripts/Commands/cs_titles.cpp
@@ -37,21 +37,21 @@ public:
{
static ChatCommand titlesSetCommandTable[] =
{
- { "mask", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleTitlesSetMaskCommand, "", NULL },
- { NULL, RBAC_PERM_PLAYER_COMMANDS, false, NULL, "", NULL }
+ { "mask", RBAC_PERM_COMMAND_TITLES_SET_MASK, false, &HandleTitlesSetMaskCommand, "", NULL },
+ { NULL, 0, false, NULL, "", NULL }
};
static ChatCommand titlesCommandTable[] =
{
- { "add", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleTitlesAddCommand, "", NULL },
- { "current", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleTitlesCurrentCommand, "", NULL },
- { "remove", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleTitlesRemoveCommand, "", NULL },
- { "set", RBAC_PERM_GAMEMASTER_COMMANDS, false, NULL, "", titlesSetCommandTable },
- { NULL, RBAC_PERM_PLAYER_COMMANDS, false, NULL, "", NULL }
+ { "add", RBAC_PERM_COMMAND_TITLES_ADD, false, &HandleTitlesAddCommand, "", NULL },
+ { "current", RBAC_PERM_COMMAND_TITLES_CURRENT, false, &HandleTitlesCurrentCommand, "", NULL },
+ { "remove", RBAC_PERM_COMMAND_TITLES_REMOVE, false, &HandleTitlesRemoveCommand, "", NULL },
+ { "set", RBAC_PERM_COMMAND_TITLES_SET, false, NULL, "", titlesSetCommandTable },
+ { NULL, 0, false, NULL, "", NULL }
};
static ChatCommand commandTable[] =
{
- { "titles", RBAC_PERM_GAMEMASTER_COMMANDS, false, NULL, "", titlesCommandTable },
- { NULL, RBAC_PERM_PLAYER_COMMANDS, false, NULL, "", NULL }
+ { "titles", RBAC_PERM_COMMAND_TITLES, false, NULL, "", titlesCommandTable },
+ { NULL, 0, false, NULL, "", NULL }
};
return commandTable;
}
diff --git a/src/server/scripts/Commands/cs_wp.cpp b/src/server/scripts/Commands/cs_wp.cpp
index 834c0e1b266..b1b6030a892 100644
--- a/src/server/scripts/Commands/cs_wp.cpp
+++ b/src/server/scripts/Commands/cs_wp.cpp
@@ -38,19 +38,19 @@ public:
{
static ChatCommand wpCommandTable[] =
{
- { "add", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleWpAddCommand, "", NULL },
- { "event", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleWpEventCommand, "", NULL },
- { "load", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleWpLoadCommand, "", NULL },
- { "modify", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleWpModifyCommand, "", NULL },
- { "unload", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleWpUnLoadCommand, "", NULL },
- { "reload", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleWpReloadCommand, "", NULL },
- { "show", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleWpShowCommand, "", NULL },
- { NULL, 0, false, NULL, "", NULL }
+ { "add", RBAC_PERM_COMMAND_WP_ADD, false, &HandleWpAddCommand, "", NULL },
+ { "event", RBAC_PERM_COMMAND_WP_EVENT, false, &HandleWpEventCommand, "", NULL },
+ { "load", RBAC_PERM_COMMAND_WP_LOAD, false, &HandleWpLoadCommand, "", NULL },
+ { "modify", RBAC_PERM_COMMAND_WP_MODIFY, false, &HandleWpModifyCommand, "", NULL },
+ { "unload", RBAC_PERM_COMMAND_WP_UNLOAD, false, &HandleWpUnLoadCommand, "", NULL },
+ { "reload", RBAC_PERM_COMMAND_WP_RELOAD, false, &HandleWpReloadCommand, "", NULL },
+ { "show", RBAC_PERM_COMMAND_WP_SHOW, false, &HandleWpShowCommand, "", NULL },
+ { NULL, 0, false, NULL, "", NULL }
};
static ChatCommand commandTable[] =
{
- { "wp", RBAC_PERM_GAMEMASTER_COMMANDS, false, NULL, "", wpCommandTable },
- { NULL, 0, false, NULL, "", NULL }
+ { "wp", RBAC_PERM_COMMAND_WP, false, NULL, "", wpCommandTable },
+ { NULL, 0, false, NULL, "", NULL }
};
return commandTable;
}