diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/core/os_quit.c | 7 | ||||
-rw-r--r-- | src/core/os_restart.c | 7 | ||||
-rw-r--r-- | src/core/os_shutdown.c | 7 |
3 files changed, 18 insertions, 3 deletions
diff --git a/src/core/os_quit.c b/src/core/os_quit.c index 7639ed9de..6d9fc4f4d 100644 --- a/src/core/os_quit.c +++ b/src/core/os_quit.c @@ -26,6 +26,11 @@ class CommandOSQuit : public Command CommandReturn Execute(User *u, std::vector<std::string> ¶ms) { + if (!u->nc->HasCommand("operserv/quit")) { + notice_lang(s_OperServ, u, PERMISSION_DENIED); + return MOD_STOP; + } + quitmsg = new char[28 + strlen(u->nick)]; if (!quitmsg) quitmsg = "QUIT command received, but out of memory!"; @@ -40,7 +45,7 @@ class CommandOSQuit : public Command bool OnHelp(User *u, const std::string &subcommand) { - if (!is_services_root(u)) + if (!u->nc->HasCommand("operserv/quit")) return false; notice_help(s_OperServ, u, OPER_HELP_QUIT); diff --git a/src/core/os_restart.c b/src/core/os_restart.c index 0bfaf7d9c..d5b668101 100644 --- a/src/core/os_restart.c +++ b/src/core/os_restart.c @@ -26,6 +26,11 @@ class CommandOSRestart : public Command CommandReturn Execute(User *u, std::vector<std::string> ¶ms) { + if (!u->nc->HasCommand("operserv/restart")) { + notice_lang(s_OperServ, u, PERMISSION_DENIED); + return MOD_STOP; + } + #ifdef SERVICES_BIN quitmsg = new char[31 + strlen(u->nick)]; if (!quitmsg) @@ -45,7 +50,7 @@ class CommandOSRestart : public Command bool OnHelp(User *u, const std::string &subcommand) { - if (!is_services_root(u)) + if (!u->nc->HasCommand("operserv/restart")) return false; notice_help(s_OperServ, u, OPER_HELP_RESTART); diff --git a/src/core/os_shutdown.c b/src/core/os_shutdown.c index a23605f69..52e2c8e74 100644 --- a/src/core/os_shutdown.c +++ b/src/core/os_shutdown.c @@ -26,6 +26,11 @@ class CommandOSShutdown : public Command CommandReturn Execute(User *u, std::vector<std::string> ¶ms) { + if (!u->nc->HasCommand("operserv/shutdown")) { + notice_lang(s_OperServ, u, PERMISSION_DENIED); + return MOD_STOP; + } + quitmsg = new char[32 + strlen(u->nick)]; if (!quitmsg) quitmsg = "SHUTDOWN command received, but out of memory!"; @@ -41,7 +46,7 @@ class CommandOSShutdown : public Command bool OnHelp(User *u, const std::string &subcommand) { - if (!is_services_root(u)) + if (!u->nc->HasCommand("operserv/shutdown")) return false; notice_help(s_OperServ, u, OPER_HELP_SHUTDOWN); |