diff options
| -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;      }  | 
