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

This commit is contained in:
Spp
2013-09-02 10:01:34 +02:00
parent 33d9da5060
commit f53c61c93e
4 changed files with 225 additions and 46 deletions
@@ -0,0 +1,93 @@
/* cs_debug.cpp */
SET @id = 300;
-- Add new permissions
DELETE FROM `rbac_permissions` WHERE `id` BETWEEN @id AND @id+40;
INSERT INTO `rbac_permissions` (`id`, `name`) VALUES
(@id+0, 'debug'),
(@id+1, 'debug anim'),
(@id+2, 'debug areatriggers'),
(@id+3, 'debug arena'),
(@id+4, 'debug bg'),
(@id+5, 'debug entervehicle'),
(@id+6, 'debug getitemstate'),
(@id+7, 'debug getitemvalue'),
(@id+8, 'debug getvalue'),
(@id+9, 'debug hostil'),
(@id+10, 'debug itemexpire'),
(@id+11, 'debug lootrecipient'),
(@id+12, 'debug los'),
(@id+13, 'debug mod32value'),
(@id+14, 'debug moveflags'),
(@id+15, 'debug play'),
(@id+16, 'debug play cinematics'),
(@id+17, 'debug play movie'),
(@id+18, 'debug play sound'),
(@id+19, 'debug send'),
(@id+20, 'debug send buyerror'),
(@id+21, 'debug send channelnotify'),
(@id+22, 'debug send chatmessage'),
(@id+23, 'debug send equiperror'),
(@id+24, 'debug send largepacket'),
(@id+25, 'debug send opcode'),
(@id+26, 'debug send qinvalidmsg'),
(@id+27, 'debug send qpartymsg'),
(@id+28, 'debug send sellerror'),
(@id+29, 'debug send setphaseshift'),
(@id+30, 'debug send spellfail'),
(@id+31, 'debug setaurastate'),
(@id+32, 'debug setbit'),
(@id+33, 'debug setitemvalue'),
(@id+34, 'debug setvalue'),
(@id+35, 'debug setvid'),
(@id+36, 'debug spawnvehicle'),
(@id+37, 'debug threat'),
(@id+38, 'debug update'),
(@id+39, 'debug uws'),
(@id+40, 'wpgps');
-- Add permissions to "corresponding Commands Role"
DELETE FROM `rbac_role_permissions` WHERE `permissionId` BETWEEN @id AND @id+40;
INSERT INTO `rbac_role_permissions` (`roleId`, `permissionId`) VALUES
(2, @id+0),
(3, @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),
(3, @id+11),
(2, @id+12),
(4, @id+13),
(4, @id+14),
(2, @id+15),
(2, @id+16),
(2, @id+17),
(2, @id+18),
(4, @id+19),
(4, @id+20),
(4, @id+21),
(4, @id+22),
(4, @id+23),
(4, @id+24),
(4, @id+25),
(4, @id+26),
(4, @id+27),
(4, @id+28),
(4, @id+29),
(4, @id+30),
(4, @id+31),
(4, @id+32),
(4, @id+33),
(4, @id+34),
(4, @id+35),
(4, @id+36),
(4, @id+37),
(4, @id+38),
(4, @id+39),
(4, @id+40);
@@ -0,0 +1,46 @@
/* cs_debug.cpp */
SET @id = 300;
-- Update command table with new RBAC permissions
UPDATE `command` SET `permission` = @id+0 WHERE `name` = 'debug';
UPDATE `command` SET `permission` = @id+1 WHERE `name` = 'debug anim';
UPDATE `command` SET `permission` = @id+2 WHERE `name` = 'debug areatriggers';
UPDATE `command` SET `permission` = @id+3 WHERE `name` = 'debug arena';
UPDATE `command` SET `permission` = @id+4 WHERE `name` = 'debug bg';
UPDATE `command` SET `permission` = @id+5 WHERE `name` = 'debug entervehicle';
UPDATE `command` SET `permission` = @id+6 WHERE `name` = 'debug getitemstate';
UPDATE `command` SET `permission` = @id+7 WHERE `name` = 'debug getitemvalue';
UPDATE `command` SET `permission` = @id+8 WHERE `name` = 'debug getvalue';
UPDATE `command` SET `permission` = @id+9 WHERE `name` = 'debug hostil';
UPDATE `command` SET `permission` = @id+10 WHERE `name` = 'debug itemexpire';
UPDATE `command` SET `permission` = @id+11 WHERE `name` = 'debug lootrecipient';
UPDATE `command` SET `permission` = @id+12 WHERE `name` = 'debug los';
UPDATE `command` SET `permission` = @id+13 WHERE `name` = 'debug mod32value';
UPDATE `command` SET `permission` = @id+14 WHERE `name` = 'debug moveflags';
UPDATE `command` SET `permission` = @id+15 WHERE `name` = 'debug play';
UPDATE `command` SET `permission` = @id+16 WHERE `name` = 'debug play cinematics';
UPDATE `command` SET `permission` = @id+17 WHERE `name` = 'debug play movie';
UPDATE `command` SET `permission` = @id+18 WHERE `name` = 'debug play sound';
UPDATE `command` SET `permission` = @id+19 WHERE `name` = 'debug send';
UPDATE `command` SET `permission` = @id+20 WHERE `name` = 'debug send buyerror';
UPDATE `command` SET `permission` = @id+21 WHERE `name` = 'debug send channelnotify';
UPDATE `command` SET `permission` = @id+22 WHERE `name` = 'debug send chatmessage';
UPDATE `command` SET `permission` = @id+23 WHERE `name` = 'debug send equiperror';
UPDATE `command` SET `permission` = @id+24 WHERE `name` = 'debug send largepacket';
UPDATE `command` SET `permission` = @id+25 WHERE `name` = 'debug send opcode';
UPDATE `command` SET `permission` = @id+26 WHERE `name` = 'debug send qinvalidmsg';
UPDATE `command` SET `permission` = @id+27 WHERE `name` = 'debug send qpartymsg';
UPDATE `command` SET `permission` = @id+28 WHERE `name` = 'debug send sellerror';
UPDATE `command` SET `permission` = @id+29 WHERE `name` = 'debug send setphaseshift';
UPDATE `command` SET `permission` = @id+30 WHERE `name` = 'debug send spellfail';
UPDATE `command` SET `permission` = @id+31 WHERE `name` = 'debug setaurastate';
UPDATE `command` SET `permission` = @id+32 WHERE `name` = 'debug setbit';
UPDATE `command` SET `permission` = @id+33 WHERE `name` = 'debug setitemvalue';
UPDATE `command` SET `permission` = @id+34 WHERE `name` = 'debug setvalue';
UPDATE `command` SET `permission` = @id+35 WHERE `name` = 'debug setvid';
UPDATE `command` SET `permission` = @id+36 WHERE `name` = 'debug spawnvehicle';
UPDATE `command` SET `permission` = @id+37 WHERE `name` = 'debug threat';
UPDATE `command` SET `permission` = @id+38 WHERE `name` = 'debug update';
UPDATE `command` SET `permission` = @id+39 WHERE `name` = 'debug uws';
UPDATE `command` SET `permission` = @id+40 WHERE `name` = 'wpgps';
+41 -1
View File
@@ -177,7 +177,47 @@ enum RBACPermissions
RBAC_PERM_COMMAND_CHEAT_STATUS = 297, RBAC_PERM_COMMAND_CHEAT_STATUS = 297,
RBAC_PERM_COMMAND_CHEAT_TAXI = 298, RBAC_PERM_COMMAND_CHEAT_TAXI = 298,
RBAC_PERM_COMMAND_CHEAT_WATERWALK = 299, RBAC_PERM_COMMAND_CHEAT_WATERWALK = 299,
RBAC_PERM_COMMAND_DEBUG = 300,
RBAC_PERM_COMMAND_DEBUG_ANIM = 301,
RBAC_PERM_COMMAND_DEBUG_AREATRIGGERS = 302,
RBAC_PERM_COMMAND_DEBUG_ARENA = 303,
RBAC_PERM_COMMAND_DEBUG_BG = 304,
RBAC_PERM_COMMAND_DEBUG_ENTERVEHICLE = 305,
RBAC_PERM_COMMAND_DEBUG_GETITEMSTATE = 306,
RBAC_PERM_COMMAND_DEBUG_GETITEMVALUE = 307,
RBAC_PERM_COMMAND_DEBUG_GETVALUE = 308,
RBAC_PERM_COMMAND_DEBUG_HOSTIL = 309,
RBAC_PERM_COMMAND_DEBUG_ITEMEXPIRE = 310,
RBAC_PERM_COMMAND_DEBUG_LOOTRECIPIENT = 311,
RBAC_PERM_COMMAND_DEBUG_LOS = 312,
RBAC_PERM_COMMAND_DEBUG_MOD32VALUE = 313,
RBAC_PERM_COMMAND_DEBUG_MOVEFLAGS = 314,
RBAC_PERM_COMMAND_DEBUG_PLAY = 315,
RBAC_PERM_COMMAND_DEBUG_PLAY_CINEMATIC = 316,
RBAC_PERM_COMMAND_DEBUG_PLAY_MOVIE = 317,
RBAC_PERM_COMMAND_DEBUG_PLAY_SOUND = 318,
RBAC_PERM_COMMAND_DEBUG_SEND = 319,
RBAC_PERM_COMMAND_DEBUG_SEND_BUYERROR = 320,
RBAC_PERM_COMMAND_DEBUG_SEND_CHANNELNOTIFY = 321,
RBAC_PERM_COMMAND_DEBUG_SEND_CHATMESSAGE = 322,
RBAC_PERM_COMMAND_DEBUG_SEND_EQUIPERROR = 323,
RBAC_PERM_COMMAND_DEBUG_SEND_LARGEPACKET = 324,
RBAC_PERM_COMMAND_DEBUG_SEND_OPCODE = 325,
RBAC_PERM_COMMAND_DEBUG_SEND_QINVALIDMSG = 326,
RBAC_PERM_COMMAND_DEBUG_SEND_QPARTYMSG = 327,
RBAC_PERM_COMMAND_DEBUG_SEND_SELLERROR = 328,
RBAC_PERM_COMMAND_DEBUG_SEND_SETPHASESHIFT = 329,
RBAC_PERM_COMMAND_DEBUG_SEND_SPELLFAIL = 330,
RBAC_PERM_COMMAND_DEBUG_SETAURASTATE = 331,
RBAC_PERM_COMMAND_DEBUG_SETBIT = 332,
RBAC_PERM_COMMAND_DEBUG_SETITEMVALUE = 333,
RBAC_PERM_COMMAND_DEBUG_SETVALUE = 334,
RBAC_PERM_COMMAND_DEBUG_SETVID = 335,
RBAC_PERM_COMMAND_DEBUG_SPAWNVEHICLE = 336,
RBAC_PERM_COMMAND_DEBUG_THREAT = 337,
RBAC_PERM_COMMAND_DEBUG_UPDATE = 338,
RBAC_PERM_COMMAND_DEBUG_UWS = 339,
RBAC_PERM_COMMAND_WPGPS = 340,
// custom permissions 1000+ // custom permissions 1000+
RBAC_PERM_MAX RBAC_PERM_MAX
}; };
+45 -45
View File
@@ -44,60 +44,60 @@ public:
{ {
static ChatCommand debugPlayCommandTable[] = static ChatCommand debugPlayCommandTable[] =
{ {
{ "cinematic", RBAC_PERM_MODERATOR_COMMANDS, false, &HandleDebugPlayCinematicCommand, "", NULL }, { "cinematic", RBAC_PERM_COMMAND_DEBUG_PLAY_CINEMATIC, false, &HandleDebugPlayCinematicCommand, "", NULL },
{ "movie", RBAC_PERM_MODERATOR_COMMANDS, false, &HandleDebugPlayMovieCommand, "", NULL }, { "movie", RBAC_PERM_COMMAND_DEBUG_PLAY_MOVIE, false, &HandleDebugPlayMovieCommand, "", NULL },
{ "sound", RBAC_PERM_MODERATOR_COMMANDS, false, &HandleDebugPlaySoundCommand, "", NULL }, { "sound", RBAC_PERM_COMMAND_DEBUG_PLAY_SOUND, false, &HandleDebugPlaySoundCommand, "", NULL },
{ NULL, RBAC_PERM_PLAYER_COMMANDS, false, NULL, "", NULL } { NULL, 0, false, NULL, "", NULL }
}; };
static ChatCommand debugSendCommandTable[] = static ChatCommand debugSendCommandTable[] =
{ {
{ "buyerror", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleDebugSendBuyErrorCommand, "", NULL }, { "buyerror", RBAC_PERM_COMMAND_DEBUG_SEND_BUYERROR, false, &HandleDebugSendBuyErrorCommand, "", NULL },
{ "channelnotify", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleDebugSendChannelNotifyCommand, "", NULL }, { "channelnotify", RBAC_PERM_COMMAND_DEBUG_SEND_CHANNELNOTIFY, false, &HandleDebugSendChannelNotifyCommand, "", NULL },
{ "chatmmessage", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleDebugSendChatMsgCommand, "", NULL }, { "chatmessage", RBAC_PERM_COMMAND_DEBUG_SEND_CHATMESSAGE, false, &HandleDebugSendChatMsgCommand, "", NULL },
{ "equiperror", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleDebugSendEquipErrorCommand, "", NULL }, { "equiperror", RBAC_PERM_COMMAND_DEBUG_SEND_EQUIPERROR, false, &HandleDebugSendEquipErrorCommand, "", NULL },
{ "largepacket", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleDebugSendLargePacketCommand, "", NULL }, { "largepacket", RBAC_PERM_COMMAND_DEBUG_SEND_LARGEPACKET, false, &HandleDebugSendLargePacketCommand, "", NULL },
{ "opcode", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleDebugSendOpcodeCommand, "", NULL }, { "opcode", RBAC_PERM_COMMAND_DEBUG_SEND_OPCODE, false, &HandleDebugSendOpcodeCommand, "", NULL },
{ "qpartymsg", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleDebugSendQuestPartyMsgCommand, "", NULL }, { "qpartymsg", RBAC_PERM_COMMAND_DEBUG_SEND_QPARTYMSG, false, &HandleDebugSendQuestPartyMsgCommand, "", NULL },
{ "qinvalidmsg", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleDebugSendQuestInvalidMsgCommand, "", NULL }, { "qinvalidmsg", RBAC_PERM_COMMAND_DEBUG_SEND_QINVALIDMSG, false, &HandleDebugSendQuestInvalidMsgCommand, "", NULL },
{ "sellerror", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleDebugSendSellErrorCommand, "", NULL }, { "sellerror", RBAC_PERM_COMMAND_DEBUG_SEND_SELLERROR, false, &HandleDebugSendSellErrorCommand, "", NULL },
{ "setphaseshift", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleDebugSendSetPhaseShiftCommand, "", NULL }, { "setphaseshift", RBAC_PERM_COMMAND_DEBUG_SEND_SETPHASESHIFT, false, &HandleDebugSendSetPhaseShiftCommand, "", NULL },
{ "spellfail", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleDebugSendSpellFailCommand, "", NULL }, { "spellfail", RBAC_PERM_COMMAND_DEBUG_SEND_SPELLFAIL, false, &HandleDebugSendSpellFailCommand, "", NULL },
{ NULL, RBAC_PERM_PLAYER_COMMANDS, false, NULL, "", NULL } { NULL, 0, false, NULL, "", NULL }
}; };
static ChatCommand debugCommandTable[] = static ChatCommand debugCommandTable[] =
{ {
{ "setbit", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleDebugSet32BitCommand, "", NULL }, { "setbit", RBAC_PERM_COMMAND_DEBUG_SETBIT, false, &HandleDebugSet32BitCommand, "", NULL },
{ "threat", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleDebugThreatListCommand, "", NULL }, { "threat", RBAC_PERM_COMMAND_DEBUG_THREAT, false, &HandleDebugThreatListCommand, "", NULL },
{ "hostil", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleDebugHostileRefListCommand, "", NULL }, { "hostil", RBAC_PERM_COMMAND_DEBUG_HOSTIL, false, &HandleDebugHostileRefListCommand, "", NULL },
{ "anim", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleDebugAnimCommand, "", NULL }, { "anim", RBAC_PERM_COMMAND_DEBUG_ANIM, false, &HandleDebugAnimCommand, "", NULL },
{ "arena", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleDebugArenaCommand, "", NULL }, { "arena", RBAC_PERM_COMMAND_DEBUG_ARENA, false, &HandleDebugArenaCommand, "", NULL },
{ "bg", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleDebugBattlegroundCommand, "", NULL }, { "bg", RBAC_PERM_COMMAND_DEBUG_BG, false, &HandleDebugBattlegroundCommand, "", NULL },
{ "getitemstate", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleDebugGetItemStateCommand, "", NULL }, { "getitemstate", RBAC_PERM_COMMAND_DEBUG_GETITEMSTATE, false, &HandleDebugGetItemStateCommand, "", NULL },
{ "lootrecipient", RBAC_PERM_GAMEMASTER_COMMANDS, false, &HandleDebugGetLootRecipientCommand, "", NULL }, { "lootrecipient", RBAC_PERM_COMMAND_DEBUG_LOOTRECIPIENT, false, &HandleDebugGetLootRecipientCommand, "", NULL },
{ "getvalue", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleDebugGetValueCommand, "", NULL }, { "getvalue", RBAC_PERM_COMMAND_DEBUG_GETVALUE, false, &HandleDebugGetValueCommand, "", NULL },
{ "getitemvalue", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleDebugGetItemValueCommand, "", NULL }, { "getitemvalue", RBAC_PERM_COMMAND_DEBUG_GETITEMVALUE, false, &HandleDebugGetItemValueCommand, "", NULL },
{ "Mod32Value", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleDebugMod32ValueCommand, "", NULL }, { "Mod32Value", RBAC_PERM_COMMAND_DEBUG_MOD32VALUE, false, &HandleDebugMod32ValueCommand, "", NULL },
{ "play", RBAC_PERM_MODERATOR_COMMANDS, false, NULL, "", debugPlayCommandTable }, { "play", RBAC_PERM_COMMAND_DEBUG_PLAY, false, NULL, "", debugPlayCommandTable },
{ "send", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, NULL, "", debugSendCommandTable }, { "send", RBAC_PERM_COMMAND_DEBUG_SEND, false, NULL, "", debugSendCommandTable },
{ "setaurastate", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleDebugSetAuraStateCommand, "", NULL }, { "setaurastate", RBAC_PERM_COMMAND_DEBUG_SETAURASTATE, false, &HandleDebugSetAuraStateCommand, "", NULL },
{ "setitemvalue", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleDebugSetItemValueCommand, "", NULL }, { "setitemvalue", RBAC_PERM_COMMAND_DEBUG_SETITEMVALUE, false, &HandleDebugSetItemValueCommand, "", NULL },
{ "setvalue", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleDebugSetValueCommand, "", NULL }, { "setvalue", RBAC_PERM_COMMAND_DEBUG_SETVALUE, false, &HandleDebugSetValueCommand, "", NULL },
{ "spawnvehicle", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleDebugSpawnVehicleCommand, "", NULL }, { "spawnvehicle", RBAC_PERM_COMMAND_DEBUG_SPAWNVEHICLE, false, &HandleDebugSpawnVehicleCommand, "", NULL },
{ "setvid", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleDebugSetVehicleIdCommand, "", NULL }, { "setvid", RBAC_PERM_COMMAND_DEBUG_SETVID, false, &HandleDebugSetVehicleIdCommand, "", NULL },
{ "entervehicle", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleDebugEnterVehicleCommand, "", NULL }, { "entervehicle", RBAC_PERM_COMMAND_DEBUG_ENTERVEHICLE, false, &HandleDebugEnterVehicleCommand, "", NULL },
{ "uws", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleDebugUpdateWorldStateCommand, "", NULL }, { "uws", RBAC_PERM_COMMAND_DEBUG_UWS, false, &HandleDebugUpdateWorldStateCommand, "", NULL },
{ "update", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleDebugUpdateCommand, "", NULL }, { "update", RBAC_PERM_COMMAND_DEBUG_UPDATE, false, &HandleDebugUpdateCommand, "", NULL },
{ "itemexpire", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleDebugItemExpireCommand, "", NULL }, { "itemexpire", RBAC_PERM_COMMAND_DEBUG_ITEMEXPIRE, false, &HandleDebugItemExpireCommand, "", NULL },
{ "areatriggers", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleDebugAreaTriggersCommand, "", NULL }, { "areatriggers", RBAC_PERM_COMMAND_DEBUG_AREATRIGGERS, false, &HandleDebugAreaTriggersCommand, "", NULL },
{ "los", RBAC_PERM_MODERATOR_COMMANDS, false, &HandleDebugLoSCommand, "", NULL }, { "los", RBAC_PERM_COMMAND_DEBUG_LOS, false, &HandleDebugLoSCommand, "", NULL },
{ "moveflags", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleDebugMoveflagsCommand, "", NULL }, { "moveflags", RBAC_PERM_COMMAND_DEBUG_MOVEFLAGS, false, &HandleDebugMoveflagsCommand, "", NULL },
{ NULL, RBAC_PERM_PLAYER_COMMANDS, false, NULL, "", NULL } { NULL, 0, false, NULL, "", NULL }
}; };
static ChatCommand commandTable[] = static ChatCommand commandTable[] =
{ {
{ "debug", RBAC_PERM_MODERATOR_COMMANDS, true, NULL, "", debugCommandTable }, { "debug", RBAC_PERM_COMMAND_DEBUG, true, NULL, "", debugCommandTable },
{ "wpgps", RBAC_PERM_ADMINISTRATOR_COMMANDS, false, &HandleWPGPSCommand, "", NULL }, { "wpgps", RBAC_PERM_COMMAND_WPGPS, false, &HandleWPGPSCommand, "", NULL },
{ NULL, RBAC_PERM_PLAYER_COMMANDS, false, NULL, "", NULL } { NULL, 0, false, NULL, "", NULL }
}; };
return commandTable; return commandTable;
} }