aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/auth/2013_08_30_03_auth_misc.sql43
-rw-r--r--sql/updates/world/2013_08_30_06_world_command.sql19
-rw-r--r--src/server/game/Accounts/RBAC.h18
-rw-r--r--src/server/scripts/Commands/cs_ban.cpp46
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;
}