diff options
| author | Spp <spp@jorge.gr> | 2013-09-02 12:54:51 +0200 |
|---|---|---|
| committer | Spp <spp@jorge.gr> | 2013-09-02 12:54:51 +0200 |
| commit | 2d508387e5cf0910186cdb160cd58181d5715a49 (patch) | |
| tree | 14b1989a43e9fe825cc84107a273f044f0d3a33e | |
| parent | eb73684952250de21db53588add498a4f0c25604 (diff) | |
Core/Commands: Move lookup commands to RBAC (using individual permissions)
| -rw-r--r-- | sql/updates/auth/2013_09_02_14_auth_misc.sql | 43 | ||||
| -rw-r--r-- | sql/updates/world/2013_09_02_15_world_command.sql | 21 | ||||
| -rw-r--r-- | src/server/game/Accounts/RBAC.h | 16 | ||||
| -rw-r--r-- | src/server/scripts/Commands/cs_lookup.cpp | 50 |
4 files changed, 105 insertions, 25 deletions
diff --git a/sql/updates/auth/2013_09_02_14_auth_misc.sql b/sql/updates/auth/2013_09_02_14_auth_misc.sql new file mode 100644 index 00000000000..c324f1342c1 --- /dev/null +++ b/sql/updates/auth/2013_09_02_14_auth_misc.sql @@ -0,0 +1,43 @@ +/* cs_lookup.cpp */ + +SET @id = 442; + +-- Add new permissions +DELETE FROM `rbac_permissions` WHERE `id` BETWEEN @id AND @id+15; +INSERT INTO `rbac_permissions` (`id`, `name`) VALUES +(@id+0, 'lookup'), +(@id+1, 'lookup area'), +(@id+2, 'lookup creature'), +(@id+3, 'lookup event'), +(@id+4, 'lookup faction'), +(@id+5, 'lookup item'), +(@id+6, 'lookup itemset'), +(@id+7, 'lookup object'), +(@id+8, 'lookup quest'), +(@id+9, 'lookup player'), +(@id+10, 'lookup skill'), +(@id+11, 'lookup spell'), +(@id+12, 'lookup taxinode'), +(@id+13, 'lookup tele'), +(@id+14, 'lookup title'), +(@id+15, 'lookup map'); + +-- Add permissions to "corresponding Commands Role" +DELETE FROM `rbac_role_permissions` WHERE `permissionId` BETWEEN @id AND @id+15; +INSERT INTO `rbac_role_permissions` (`roleId`, `permissionId`) VALUES +(4, @id+0), +(4, @id+1), +(4, @id+2), +(4, @id+3), +(4, @id+4), +(4, @id+5), +(4, @id+6), +(4, @id+7), +(4, @id+8), +(4, @id+9), +(4, @id+10), +(4, @id+11), +(4, @id+12), +(4, @id+13), +(4, @id+14), +(4, @id+15); diff --git a/sql/updates/world/2013_09_02_15_world_command.sql b/sql/updates/world/2013_09_02_15_world_command.sql new file mode 100644 index 00000000000..9591f741dab --- /dev/null +++ b/sql/updates/world/2013_09_02_15_world_command.sql @@ -0,0 +1,21 @@ +/* cs_lookup.cpp */ + +SET @id = 436; + +-- Update command table with new RBAC permissions +UPDATE `command` SET `permission` = @id+0 WHERE `name` = 'lookup'; +UPDATE `command` SET `permission` = @id+1 WHERE `name` = 'lookup area'; +UPDATE `command` SET `permission` = @id+2 WHERE `name` = 'lookup creature'; +UPDATE `command` SET `permission` = @id+3 WHERE `name` = 'lookup event'; +UPDATE `command` SET `permission` = @id+4 WHERE `name` = 'lookup faction'; +UPDATE `command` SET `permission` = @id+5 WHERE `name` = 'lookup item'; +UPDATE `command` SET `permission` = @id+6 WHERE `name` = 'lookup itemset'; +UPDATE `command` SET `permission` = @id+7 WHERE `name` = 'lookup object'; +UPDATE `command` SET `permission` = @id+8 WHERE `name` = 'lookup quest'; +UPDATE `command` SET `permission` = @id+9 WHERE `name` = 'lookup player'; +UPDATE `command` SET `permission` = @id+10 WHERE `name` = 'lookup skill'; +UPDATE `command` SET `permission` = @id+11 WHERE `name` = 'lookup spell'; +UPDATE `command` SET `permission` = @id+12 WHERE `name` = 'lookup taxinode'; +UPDATE `command` SET `permission` = @id+13 WHERE `name` = 'lookup tele'; +UPDATE `command` SET `permission` = @id+14 WHERE `name` = 'lookup title'; +UPDATE `command` SET `permission` = @id+15 WHERE `name` = 'lookup map'); diff --git a/src/server/game/Accounts/RBAC.h b/src/server/game/Accounts/RBAC.h index da2da919659..474f0c79213 100644 --- a/src/server/game/Accounts/RBAC.h +++ b/src/server/game/Accounts/RBAC.h @@ -318,6 +318,22 @@ enum RBACPermissions RBAC_PERM_COMMAND_LIST_OBJECT = 439,
RBAC_PERM_COMMAND_LIST_AURAS = 440,
RBAC_PERM_COMMAND_LIST_MAIL = 441,
+ RBAC_PERM_COMMAND_LOOKUP = 442,
+ RBAC_PERM_COMMAND_LOOKUP_AREA = 443,
+ RBAC_PERM_COMMAND_LOOKUP_CREATURE = 444,
+ RBAC_PERM_COMMAND_LOOKUP_EVENT = 445,
+ RBAC_PERM_COMMAND_LOOKUP_FACTION = 446,
+ RBAC_PERM_COMMAND_LOOKUP_ITEM = 447,
+ RBAC_PERM_COMMAND_LOOKUP_ITEMSET = 448,
+ RBAC_PERM_COMMAND_LOOKUP_OBJECT = 449,
+ RBAC_PERM_COMMAND_LOOKUP_QUEST = 450,
+ RBAC_PERM_COMMAND_LOOKUP_PLAYER = 451,
+ RBAC_PERM_COMMAND_LOOKUP_SKILL = 452,
+ RBAC_PERM_COMMAND_LOOKUP_SPELL = 453,
+ RBAC_PERM_COMMAND_LOOKUP_TAXINODE = 454,
+ RBAC_PERM_COMMAND_LOOKUP_TELE = 455,
+ RBAC_PERM_COMMAND_LOOKUP_TITLE = 456,
+ RBAC_PERM_COMMAND_LOOKUP_MAP = 457,
// custom permissions 1000+
RBAC_PERM_MAX
diff --git a/src/server/scripts/Commands/cs_lookup.cpp b/src/server/scripts/Commands/cs_lookup.cpp index 990c82df568..56b492a8081 100644 --- a/src/server/scripts/Commands/cs_lookup.cpp +++ b/src/server/scripts/Commands/cs_lookup.cpp @@ -41,43 +41,43 @@ public: { static ChatCommand lookupPlayerCommandTable[] = { - { "ip", RBAC_PERM_GAMEMASTER_COMMANDS, true, &HandleLookupPlayerIpCommand, "", NULL }, - { "account", RBAC_PERM_GAMEMASTER_COMMANDS, true, &HandleLookupPlayerAccountCommand, "", NULL }, - { "email", RBAC_PERM_GAMEMASTER_COMMANDS, true, &HandleLookupPlayerEmailCommand, "", NULL }, - { NULL, 0, false, NULL, "", NULL } + { "ip", RBAC_PERM_COMMAND_LOOKUP_PLAYER_IP, true, &HandleLookupPlayerIpCommand, "", NULL }, + { "account", RBAC_PERM_COMMAND_LOOKUP_PLAYER_ACCOUNT, true, &HandleLookupPlayerAccountCommand, "", NULL }, + { "email", RBAC_PERM_COMMAND_LOOKUP_PLAYER_EMAIL, true, &HandleLookupPlayerEmailCommand, "", NULL }, + { NULL, 0, false, NULL, "", NULL } }; static ChatCommand lookupSpellCommandTable[] = { - { "id", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleLookupSpellIdCommand, "", NULL }, - { "", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleLookupSpellCommand, "", NULL }, - { NULL, 0, false, NULL, "", NULL } + { "id", RBAC_PERM_COMMAND_LOOKUP_SPELL_ID, true, &HandleLookupSpellIdCommand, "", NULL }, + { "", RBAC_PERM_COMMAND_LOOKUP_SPELL, true, &HandleLookupSpellCommand, "", NULL }, + { NULL, 0, false, NULL, "", NULL } }; static ChatCommand lookupCommandTable[] = { - { "area", RBAC_PERM_MODERATOR_COMMANDS, true, &HandleLookupAreaCommand, "", NULL }, - { "creature", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleLookupCreatureCommand, "", NULL }, - { "event", RBAC_PERM_GAMEMASTER_COMMANDS, true, &HandleLookupEventCommand, "", NULL }, - { "faction", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleLookupFactionCommand, "", NULL }, - { "item", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleLookupItemCommand, "", NULL }, - { "itemset", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleLookupItemSetCommand, "", NULL }, - { "object", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleLookupObjectCommand, "", NULL }, - { "quest", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleLookupQuestCommand, "", NULL }, - { "player", RBAC_PERM_GAMEMASTER_COMMANDS, true, NULL, "", lookupPlayerCommandTable }, - { "skill", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleLookupSkillCommand, "", NULL }, - { "spell", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, NULL, "", lookupSpellCommandTable }, - { "taxinode", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleLookupTaxiNodeCommand, "", NULL }, - { "tele", RBAC_PERM_MODERATOR_COMMANDS, true, &HandleLookupTeleCommand, "", NULL }, - { "title", RBAC_PERM_GAMEMASTER_COMMANDS, true, &HandleLookupTitleCommand, "", NULL }, - { "map", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleLookupMapCommand, "", NULL }, - { NULL, 0, false, NULL, "", NULL } + { "area", RBAC_PERM_COMMAND_LOOKUP_AREA, true, &HandleLookupAreaCommand, "", NULL }, + { "creature", RBAC_PERM_COMMAND_LOOKUP_CREATURE, true, &HandleLookupCreatureCommand, "", NULL }, + { "event", RBAC_PERM_COMMAND_LOOKUP_EVENT, true, &HandleLookupEventCommand, "", NULL }, + { "faction", RBAC_PERM_COMMAND_LOOKUP_FACTION, true, &HandleLookupFactionCommand, "", NULL }, + { "item", RBAC_PERM_COMMAND_LOOKUP_ITEM, true, &HandleLookupItemCommand, "", NULL }, + { "itemset", RBAC_PERM_COMMAND_LOOKUP_ITEMSET, true, &HandleLookupItemSetCommand, "", NULL }, + { "object", RBAC_PERM_COMMAND_LOOKUP_OBJECT, true, &HandleLookupObjectCommand, "", NULL }, + { "quest", RBAC_PERM_COMMAND_LOOKUP_QUEST, true, &HandleLookupQuestCommand, "", NULL }, + { "player", RBAC_PERM_COMMAND_LOOKUP_PLAYER, true, NULL, "", lookupPlayerCommandTable }, + { "skill", RBAC_PERM_COMMAND_LOOKUP_SKILL, true, &HandleLookupSkillCommand, "", NULL }, + { "spell", RBAC_PERM_COMMAND_LOOKUP_SPELL, true, NULL, "", lookupSpellCommandTable }, + { "taxinode", RBAC_PERM_COMMAND_LOOKUP_TAXINODE, true, &HandleLookupTaxiNodeCommand, "", NULL }, + { "tele", RBAC_PERM_COMMAND_LOOKUP_TELE, true, &HandleLookupTeleCommand, "", NULL }, + { "title", RBAC_PERM_COMMAND_LOOKUP_TITLE, true, &HandleLookupTitleCommand, "", NULL }, + { "map", RBAC_PERM_COMMAND_LOOKUP_MAP, true, &HandleLookupMapCommand, "", NULL }, + { NULL, 0, false, NULL, "", NULL } }; static ChatCommand commandTable[] = { - { "lookup", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, NULL, "", lookupCommandTable }, - { NULL, 0, false, NULL, "", NULL } + { "lookup", RBAC_PERM_COMMAND_LOOKUP, true, NULL, "", lookupCommandTable }, + { NULL, 0, false, NULL, "", NULL } }; return commandTable; } |
