Core/Commands: Move lookup commands to RBAC (using individual permissions)

This commit is contained in:
Spp
2013-09-02 12:54:51 +02:00
parent eb73684952
commit 2d508387e5
4 changed files with 105 additions and 25 deletions

View File

@@ -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);

View File

@@ -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');

View File

@@ -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

View File

@@ -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;
}