Core/RBAC: Move server commands to RBAC (using individual permissions)
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
/* cs_server.cpp */
|
||||
|
||||
SET @id = 718;
|
||||
|
||||
-- Add new permissions
|
||||
DELETE FROM `rbac_permissions` WHERE `id` BETWEEN @id AND @id+18;
|
||||
INSERT INTO `rbac_permissions` (`id`, `name`) VALUES
|
||||
(@id+0, 'server'),
|
||||
(@id+1, 'server corpses'),
|
||||
(@id+2, 'server exit'),
|
||||
(@id+3, 'server idlerestart'),
|
||||
(@id+4, 'server idlerestart cancel'),
|
||||
(@id+5, 'server idleshutdown'),
|
||||
(@id+6, 'server idleshutdown cancel'),
|
||||
(@id+7, 'server info'),
|
||||
(@id+8, 'server plimit'),
|
||||
(@id+9, 'server restart'),
|
||||
(@id+10, 'server restart cancel'),
|
||||
(@id+11, 'server set'),
|
||||
(@id+12, 'server set closed'),
|
||||
(@id+13, 'server set difftime'),
|
||||
(@id+14, 'server set loglevel'),
|
||||
(@id+15, 'server set motd'),
|
||||
(@id+16, 'server shutdown'),
|
||||
(@id+17, 'server shutdown cancel'),
|
||||
(@id+18, 'server motd');
|
||||
|
||||
-- Add permissions to "corresponding Commands Role"
|
||||
DELETE FROM `rbac_role_permissions` WHERE `permissionId` BETWEEN @id AND @id+18;
|
||||
INSERT INTO `rbac_role_permissions` (`roleId`, `permissionId`) VALUES
|
||||
(4, @id+0),
|
||||
(4, @id+1),
|
||||
(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+15),
|
||||
(4, @id+16),
|
||||
(4, @id+17),
|
||||
(4, @id+18);
|
||||
@@ -3,11 +3,11 @@
|
||||
SET @id = 710;
|
||||
|
||||
-- Update command table with new RBAC permissions
|
||||
UPDATE `command` SET `permission` = @id+0 WHERE `name` = 'reload';
|
||||
UPDATE `command` SET `permission` = @id+1 WHERE `name` = 'reload achievements';
|
||||
UPDATE `command` SET `permission` = @id+2 WHERE `name` = 'reload honor';
|
||||
UPDATE `command` SET `permission` = @id+3 WHERE `name` = 'reload level';
|
||||
UPDATE `command` SET `permission` = @id+4 WHERE `name` = 'reload spells';
|
||||
UPDATE `command` SET `permission` = @id+5 WHERE `name` = 'reload stats';
|
||||
UPDATE `command` SET `permission` = @id+6 WHERE `name` = 'reload talents';
|
||||
UPDATE `command` SET `permission` = @id+7 WHERE `name` = 'reload all';
|
||||
UPDATE `command` SET `permission` = @id+0 WHERE `name` = 'reset';
|
||||
UPDATE `command` SET `permission` = @id+1 WHERE `name` = 'reset achievements';
|
||||
UPDATE `command` SET `permission` = @id+2 WHERE `name` = 'reset honor';
|
||||
UPDATE `command` SET `permission` = @id+3 WHERE `name` = 'reset level';
|
||||
UPDATE `command` SET `permission` = @id+4 WHERE `name` = 'reset spells';
|
||||
UPDATE `command` SET `permission` = @id+5 WHERE `name` = 'reset stats';
|
||||
UPDATE `command` SET `permission` = @id+6 WHERE `name` = 'reset talents';
|
||||
UPDATE `command` SET `permission` = @id+7 WHERE `name` = 'reset all';
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
/* cs_server.cpp */
|
||||
|
||||
SET @id = 718;
|
||||
|
||||
-- Update command table with new RBAC permissions
|
||||
UPDATE `command` SET `permission` = @id+0 WHERE `name` = 'server';
|
||||
UPDATE `command` SET `permission` = @id+1 WHERE `name` = 'server corpses';
|
||||
UPDATE `command` SET `permission` = @id+2 WHERE `name` = 'server exit';
|
||||
UPDATE `command` SET `permission` = @id+3 WHERE `name` = 'server idlerestart';
|
||||
UPDATE `command` SET `permission` = @id+4 WHERE `name` = 'server idlerestart cancel';
|
||||
UPDATE `command` SET `permission` = @id+5 WHERE `name` = 'server idleshutdown';
|
||||
UPDATE `command` SET `permission` = @id+6 WHERE `name` = 'server idleshutdown cancel';
|
||||
UPDATE `command` SET `permission` = @id+7 WHERE `name` = 'server info';
|
||||
UPDATE `command` SET `permission` = @id+8 WHERE `name` = 'server plimit';
|
||||
UPDATE `command` SET `permission` = @id+9 WHERE `name` = 'server restart';
|
||||
UPDATE `command` SET `permission` = @id+10 WHERE `name` = 'server restart cancel';
|
||||
UPDATE `command` SET `permission` = @id+11 WHERE `name` = 'server set';
|
||||
UPDATE `command` SET `permission` = @id+12 WHERE `name` = 'server set closed';
|
||||
UPDATE `command` SET `permission` = @id+13 WHERE `name` = 'server set difftime';
|
||||
UPDATE `command` SET `permission` = @id+14 WHERE `name` = 'server set loglevel';
|
||||
UPDATE `command` SET `permission` = @id+15 WHERE `name` = 'server set motd';
|
||||
UPDATE `command` SET `permission` = @id+16 WHERE `name` = 'server shutdown';
|
||||
UPDATE `command` SET `permission` = @id+17 WHERE `name` = 'server shutdown cancel';
|
||||
UPDATE `command` SET `permission` = @id+18 WHERE `name` = 'server motd';
|
||||
@@ -617,6 +617,25 @@ enum RBACPermissions
|
||||
RBAC_PERM_COMMAND_RESET_STATS = 715,
|
||||
RBAC_PERM_COMMAND_RESET_TALENTS = 716,
|
||||
RBAC_PERM_COMMAND_RESET_ALL = 717,
|
||||
RBAC_PERM_COMMAND_SERVER = 718,
|
||||
RBAC_PERM_COMMAND_SERVER_CORPSES = 719,
|
||||
RBAC_PERM_COMMAND_SERVER_EXIT = 720,
|
||||
RBAC_PERM_COMMAND_SERVER_IDLERESTART = 721,
|
||||
RBAC_PERM_COMMAND_SERVER_IDLERESTART_CANCEL = 722,
|
||||
RBAC_PERM_COMMAND_SERVER_IDLESHUTDOWN = 723,
|
||||
RBAC_PERM_COMMAND_SERVER_IDLESHUTDOWN_CANCEL = 724,
|
||||
RBAC_PERM_COMMAND_SERVER_INFO = 725,
|
||||
RBAC_PERM_COMMAND_SERVER_PLIMIT = 726,
|
||||
RBAC_PERM_COMMAND_SERVER_RESTART = 727,
|
||||
RBAC_PERM_COMMAND_SERVER_RESTART_CANCEL = 728,
|
||||
RBAC_PERM_COMMAND_SERVER_SET = 729,
|
||||
RBAC_PERM_COMMAND_SERVER_SET_CLOSED = 730,
|
||||
RBAC_PERM_COMMAND_SERVER_SET_DIFFTIME = 731,
|
||||
RBAC_PERM_COMMAND_SERVER_SET_LOGLEVEL = 732,
|
||||
RBAC_PERM_COMMAND_SERVER_SET_MOTD = 733,
|
||||
RBAC_PERM_COMMAND_SERVER_SHUTDOWN = 734,
|
||||
RBAC_PERM_COMMAND_SERVER_SHUTDOWN_CANCEL = 735,
|
||||
RBAC_PERM_COMMAND_SERVER_MOTD = 736,
|
||||
|
||||
// custom permissions 1000+
|
||||
RBAC_PERM_MAX
|
||||
|
||||
@@ -39,59 +39,59 @@ public:
|
||||
{
|
||||
static ChatCommand serverIdleRestartCommandTable[] =
|
||||
{
|
||||
{ "cancel", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleServerShutDownCancelCommand, "", NULL },
|
||||
{ "" , RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleServerIdleRestartCommand, "", NULL },
|
||||
{ "cancel", RBAC_PERM_COMMAND_SERVER_IDLERESTART_CANCEL, true, &HandleServerShutDownCancelCommand, "", NULL },
|
||||
{ "" , RBAC_PERM_COMMAND_SERVER_IDLERESTART, true, &HandleServerIdleRestartCommand, "", NULL },
|
||||
{ NULL, 0, false, NULL, "", NULL }
|
||||
};
|
||||
|
||||
static ChatCommand serverIdleShutdownCommandTable[] =
|
||||
{
|
||||
{ "cancel", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleServerShutDownCancelCommand, "", NULL },
|
||||
{ "" , RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleServerIdleShutDownCommand, "", NULL },
|
||||
{ "cancel", RBAC_PERM_COMMAND_SERVER_IDLESHUTDOWN_CANCEL, true, &HandleServerShutDownCancelCommand, "", NULL },
|
||||
{ "" , RBAC_PERM_COMMAND_SERVER_IDLESHUTDOWN, true, &HandleServerIdleShutDownCommand, "", NULL },
|
||||
{ NULL, 0, false, NULL, "", NULL }
|
||||
};
|
||||
|
||||
static ChatCommand serverRestartCommandTable[] =
|
||||
{
|
||||
{ "cancel", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleServerShutDownCancelCommand, "", NULL },
|
||||
{ "" , RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleServerRestartCommand, "", NULL },
|
||||
{ "cancel", RBAC_PERM_COMMAND_SERVER_RESTART_CANCEL, true, &HandleServerShutDownCancelCommand, "", NULL },
|
||||
{ "" , RBAC_PERM_COMMAND_SERVER_RESTART, true, &HandleServerRestartCommand, "", NULL },
|
||||
{ NULL, 0, false, NULL, "", NULL }
|
||||
};
|
||||
|
||||
static ChatCommand serverShutdownCommandTable[] =
|
||||
{
|
||||
{ "cancel", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleServerShutDownCancelCommand, "", NULL },
|
||||
{ "" , RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleServerShutDownCommand, "", NULL },
|
||||
{ "cancel", RBAC_PERM_COMMAND_SERVER_SHUTDOWN_CANCEL, true, &HandleServerShutDownCancelCommand, "", NULL },
|
||||
{ "" , RBAC_PERM_COMMAND_SERVER_SHUTDOWN, true, &HandleServerShutDownCommand, "", NULL },
|
||||
{ NULL, 0, false, NULL, "", NULL }
|
||||
};
|
||||
|
||||
static ChatCommand serverSetCommandTable[] =
|
||||
{
|
||||
{ "difftime", RBAC_PERM_CONSOLE_COMMANDS, true, &HandleServerSetDiffTimeCommand, "", NULL },
|
||||
{ "loglevel", RBAC_PERM_CONSOLE_COMMANDS, true, &HandleServerSetLogLevelCommand, "", NULL },
|
||||
{ "motd", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleServerSetMotdCommand, "", NULL },
|
||||
{ "closed", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleServerSetClosedCommand, "", NULL },
|
||||
{ "difftime", RBAC_PERM_COMMAND_SERVER_SET_DIFFTIME, true, &HandleServerSetDiffTimeCommand, "", NULL },
|
||||
{ "loglevel", RBAC_PERM_COMMAND_SERVER_SET_LOGLEVEL, true, &HandleServerSetLogLevelCommand, "", NULL },
|
||||
{ "motd", RBAC_PERM_COMMAND_SERVER_SET_MOTD, true, &HandleServerSetMotdCommand, "", NULL },
|
||||
{ "closed", RBAC_PERM_COMMAND_SERVER_SET_CLOSED, true, &HandleServerSetClosedCommand, "", NULL },
|
||||
{ NULL, 0, false, NULL, "", NULL }
|
||||
};
|
||||
|
||||
static ChatCommand serverCommandTable[] =
|
||||
{
|
||||
{ "corpses", RBAC_PERM_GAMEMASTER_COMMANDS, true, &HandleServerCorpsesCommand, "", NULL },
|
||||
{ "exit", RBAC_PERM_CONSOLE_COMMANDS, true, &HandleServerExitCommand, "", NULL },
|
||||
{ "idlerestart", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, NULL, "", serverIdleRestartCommandTable },
|
||||
{ "idleshutdown", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, NULL, "", serverIdleShutdownCommandTable },
|
||||
{ "info", RBAC_PERM_PLAYER_COMMANDS, true, &HandleServerInfoCommand, "", NULL },
|
||||
{ "motd", RBAC_PERM_PLAYER_COMMANDS, true, &HandleServerMotdCommand, "", NULL },
|
||||
{ "plimit", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, &HandleServerPLimitCommand, "", NULL },
|
||||
{ "restart", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, NULL, "", serverRestartCommandTable },
|
||||
{ "shutdown", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, NULL, "", serverShutdownCommandTable },
|
||||
{ "set", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, NULL, "", serverSetCommandTable },
|
||||
{ "corpses", RBAC_PERM_COMMAND_SERVER_CORPSES, true, &HandleServerCorpsesCommand, "", NULL },
|
||||
{ "exit", RBAC_PERM_COMMAND_SERVER_EXIT, true, &HandleServerExitCommand, "", NULL },
|
||||
{ "idlerestart", RBAC_PERM_COMMAND_SERVER_IDLERESTART, true, NULL, "", serverIdleRestartCommandTable },
|
||||
{ "idleshutdown", RBAC_PERM_COMMAND_SERVER_IDLESHUTDOWN, true, NULL, "", serverIdleShutdownCommandTable },
|
||||
{ "info", RBAC_PERM_COMMAND_SERVER_INFO, true, &HandleServerInfoCommand, "", NULL },
|
||||
{ "motd", RBAC_PERM_COMMAND_SERVER_MOTD, true, &HandleServerMotdCommand, "", NULL },
|
||||
{ "plimit", RBAC_PERM_COMMAND_SERVER_PLIMIT, true, &HandleServerPLimitCommand, "", NULL },
|
||||
{ "restart", RBAC_PERM_COMMAND_SERVER_RESTART, true, NULL, "", serverRestartCommandTable },
|
||||
{ "shutdown", RBAC_PERM_COMMAND_SERVER_SHUTDOWN, true, NULL, "", serverShutdownCommandTable },
|
||||
{ "set", RBAC_PERM_COMMAND_SERVER_SET, true, NULL, "", serverSetCommandTable },
|
||||
{ NULL, 0, false, NULL, "", NULL }
|
||||
};
|
||||
|
||||
static ChatCommand commandTable[] =
|
||||
{
|
||||
{ "server", RBAC_PERM_ADMINISTRATOR_COMMANDS, true, NULL, "", serverCommandTable },
|
||||
{ "server", RBAC_PERM_COMMAND_SERVER, true, NULL, "", serverCommandTable },
|
||||
{ NULL, 0, false, NULL, "", NULL }
|
||||
};
|
||||
return commandTable;
|
||||
|
||||
Reference in New Issue
Block a user