diff options
-rw-r--r-- | sql/updates/auth/2013_08_30_03_auth_misc.sql | 43 | ||||
-rw-r--r-- | sql/updates/world/2013_08_30_06_world_command.sql | 19 | ||||
-rw-r--r-- | src/server/game/Accounts/RBAC.h | 18 | ||||
-rw-r--r-- | src/server/scripts/Commands/cs_ban.cpp | 46 |
4 files changed, 103 insertions, 23 deletions
diff --git a/sql/updates/auth/2013_08_30_03_auth_misc.sql b/sql/updates/auth/2013_08_30_03_auth_misc.sql new file mode 100644 index 00000000000..a6495a2de6e --- /dev/null +++ b/sql/updates/auth/2013_08_30_03_auth_misc.sql @@ -0,0 +1,43 @@ +-- Add new permissions +DELETE FROM `rbac_permissions` WHERE `id` BETWEEN 239 AND 256; +INSERT INTO `rbac_permissions` (`id`, `name`) VALUES +(239, 'ban'), +(240, 'ban account'), +(241, 'ban character'), +(242, 'ban ip'), +(243, 'ban playeraccount'), +(244, 'baninfo'), +(245, 'baninfo account'), +(246, 'baninfo character'), +(247, 'baninfo ip'), +(248, 'banlist'), +(249, 'banlist account'), +(250, 'banlist character'), +(251, 'banlist ip'), +(252, 'unban'), +(253, 'unban account'), +(254, 'unban character'), +(255, 'unban ip'), +(256, 'unban playeraccount'); + +-- Add Permissions to "corresponding Commands Role" +DELETE FROM `rbac_role_permissions` WHERE `permissionId` BETWEEN 239 AND 256; +INSERT INTO `rbac_role_permissions` (`roleId`, `permissionId`) VALUES +(4, 239), +(4, 240), +(4, 241), +(4, 242), +(4, 243), +(4, 244), +(4, 245), +(4, 246), +(4, 247), +(4, 248), +(4, 249), +(4, 250), +(4, 251), +(4, 252), +(4, 253), +(4, 254), +(4, 255), +(4, 256); diff --git a/sql/updates/world/2013_08_30_06_world_command.sql b/sql/updates/world/2013_08_30_06_world_command.sql new file mode 100644 index 00000000000..777319613ce --- /dev/null +++ b/sql/updates/world/2013_08_30_06_world_command.sql @@ -0,0 +1,19 @@ +-- Update command table with new RBAC permissions +UPDATE `command` SET `permission` = 239 WHERE `name` = 'ban'; +UPDATE `command` SET `permission` = 240 WHERE `name` = 'ban account'; +UPDATE `command` SET `permission` = 241 WHERE `name` = 'ban character'; +UPDATE `command` SET `permission` = 242 WHERE `name` = 'ban ip'; +UPDATE `command` SET `permission` = 243 WHERE `name` = 'ban playeraccount'; +UPDATE `command` SET `permission` = 244 WHERE `name` = 'baninfo'; +UPDATE `command` SET `permission` = 245 WHERE `name` = 'baninfo account'; +UPDATE `command` SET `permission` = 246 WHERE `name` = 'baninfo character'; +UPDATE `command` SET `permission` = 247 WHERE `name` = 'baninfo ip'; +UPDATE `command` SET `permission` = 248 WHERE `name` = 'banlist'; +UPDATE `command` SET `permission` = 249 WHERE `name` = 'banlist account'; +UPDATE `command` SET `permission` = 250 WHERE `name` = 'banlist character'; +UPDATE `command` SET `permission` = 251 WHERE `name` = 'banlist ip'; +UPDATE `command` SET `permission` = 252 WHERE `name` = 'unban'; +UPDATE `command` SET `permission` = 253 WHERE `name` = 'unban account'; +UPDATE `command` SET `permission` = 254 WHERE `name` = 'unban character'; +UPDATE `command` SET `permission` = 255 WHERE `name` = 'unban ip'; +UPDATE `command` SET `permission` = 256 WHERE `name` = 'unban playeraccount'; diff --git a/src/server/game/Accounts/RBAC.h b/src/server/game/Accounts/RBAC.h index f0e6f547ba3..55f8527a125 100644 --- a/src/server/game/Accounts/RBAC.h +++ b/src/server/game/Accounts/RBAC.h @@ -136,6 +136,24 @@ enum RBACPermissions RBAC_PERM_COMMAND_ARENA_INFO = 236,
RBAC_PERM_COMMAND_ARENA_LOOKUP = 237,
RBAC_PERM_COMMAND_ARENA_RENAME = 238,
+ RBAC_PERM_COMMAND_BAN = 239,
+ RBAC_PERM_COMMAND_BAN_ACCOUNT = 240,
+ RBAC_PERM_COMMAND_BAN_CHARACTER = 241,
+ RBAC_PERM_COMMAND_BAN_IP = 242,
+ RBAC_PERM_COMMAND_BAN_PLAYERACCOUNT = 243,
+ RBAC_PERM_COMMAND_BANINFO = 244,
+ RBAC_PERM_COMMAND_BANINFO_ACCOUNT = 245,
+ RBAC_PERM_COMMAND_BANINFO_CHARACTER = 246,
+ RBAC_PERM_COMMAND_BANINFO_IP = 247,
+ RBAC_PERM_COMMAND_BANLIST = 248,
+ RBAC_PERM_COMMAND_BANLIST_ACCOUNT = 249,
+ RBAC_PERM_COMMAND_BANLIST_CHARACTER = 250,
+ RBAC_PERM_COMMAND_BANLIST_IP = 251,
+ RBAC_PERM_COMMAND_UNBAN = 252,
+ RBAC_PERM_COMMAND_UNBAN_ACCOUNT = 253,
+ RBAC_PERM_COMMAND_UNBAN_CHARACTER = 254,
+ RBAC_PERM_COMMAND_UNBAN_IP = 255,
+ RBAC_PERM_COMMAND_UNBAN_PLAYERACCOUNT = 256,
// custom permissions 1000+
RBAC_PERM_MAX
diff --git a/src/server/scripts/Commands/cs_ban.cpp b/src/server/scripts/Commands/cs_ban.cpp index 932a1def6f0..b12e058a78f 100644 --- a/src/server/scripts/Commands/cs_ban.cpp +++ b/src/server/scripts/Commands/cs_ban.cpp @@ -39,41 +39,41 @@ public: { static ChatCommand unbanCommandTable[] = { - { "account", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleUnBanAccountCommand, "", NULL }, - { "character", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleUnBanCharacterCommand, "", NULL }, - { "playeraccount", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleUnBanAccountByCharCommand, "", NULL }, - { "ip", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleUnBanIPCommand, "", NULL }, - { NULL, 0, false, NULL, "", NULL } + { "account", RBAC_PERM_COMMAND_UNBAN_ACCOUNT, true, &HandleUnBanAccountCommand, "", NULL }, + { "character", RBAC_PERM_COMMAND_UNBAN_CHARACTER, true, &HandleUnBanCharacterCommand, "", NULL }, + { "playeraccount", RBAC_PERM_COMMAND_UNBAN_PLAYERACCOUNT, true, &HandleUnBanAccountByCharCommand, "", NULL }, + { "ip", RBAC_PERM_COMMAND_UNBAN_IP, true, &HandleUnBanIPCommand, "", NULL }, + { NULL, 0, false, NULL, "", NULL } }; static ChatCommand banlistCommandTable[] = { - { "account", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleBanListAccountCommand, "", NULL }, - { "character", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleBanListCharacterCommand, "", NULL }, - { "ip", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleBanListIPCommand, "", NULL }, - { NULL, 0, false, NULL, "", NULL } + { "account", RBAC_PERM_COMMAND_BANLIST_ACCOUNT, true, &HandleBanListAccountCommand, "", NULL }, + { "character", RBAC_PERM_COMMAND_BANLIST_CHARACTER, true, &HandleBanListCharacterCommand, "", NULL }, + { "ip", RBAC_PERM_COMMAND_BANLIST_IP, true, &HandleBanListIPCommand, "", NULL }, + { NULL, 0, false, NULL, "", NULL } }; static ChatCommand baninfoCommandTable[] = { - { "account", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleBanInfoAccountCommand, "", NULL }, - { "character", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleBanInfoCharacterCommand, "", NULL }, - { "ip", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleBanInfoIPCommand, "", NULL }, - { NULL, 0, false, NULL, "", NULL } + { "account", RBAC_PERM_COMMAND_BANINFO_ACCOUNT, true, &HandleBanInfoAccountCommand, "", NULL }, + { "character", RBAC_PERM_COMMAND_BANINFO_CHARACTER, true, &HandleBanInfoCharacterCommand, "", NULL }, + { "ip", RBAC_PERM_COMMAND_BANINFO_IP, true, &HandleBanInfoIPCommand, "", NULL }, + { NULL, 0, false, NULL, "", NULL } }; static ChatCommand banCommandTable[] = { - { "account", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleBanAccountCommand, "", NULL }, - { "character", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleBanCharacterCommand, "", NULL }, - { "playeraccount", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleBanAccountByCharCommand, "", NULL }, - { "ip", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleBanIPCommand, "", NULL }, - { NULL, 0, false, NULL, "", NULL } + { "account", RBAC_PERM_COMMAND_BAN_ACCOUNT, true, &HandleBanAccountCommand, "", NULL }, + { "character", RBAC_PERM_COMMAND_BAN_CHARACTER, true, &HandleBanCharacterCommand, "", NULL }, + { "playeraccount", RBAC_PERM_COMMAND_BAN_PLAYERACCOUNT, true, &HandleBanAccountByCharCommand, "", NULL }, + { "ip", RBAC_PERM_COMMAND_BAN_IP, true, &HandleBanIPCommand, "", NULL }, + { NULL, 0, false, NULL, "", NULL } }; static ChatCommand commandTable[] = { - { "ban", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, NULL, "", banCommandTable }, - { "baninfo", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, NULL, "", baninfoCommandTable }, - { "banlist", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, NULL, "", banlistCommandTable }, - { "unban", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, NULL, "", unbanCommandTable }, - { NULL, 0, false, NULL, "", NULL } + { "ban", RBAC_PERM_COMMAND_BAN, true, NULL, "", banCommandTable }, + { "baninfo", RBAC_PERM_COMMAND_BANINFO, true, NULL, "", baninfoCommandTable }, + { "banlist", RBAC_PERM_COMMAND_BANLIST, true, NULL, "", banlistCommandTable }, + { "unban", RBAC_PERM_COMMAND_UNBAN, true, NULL, "", unbanCommandTable }, + { NULL, 0, false, NULL, "", NULL } }; return commandTable; } |