summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/core/os_quit.c7
-rw-r--r--src/core/os_restart.c7
-rw-r--r--src/core/os_shutdown.c7
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> &params)
{
+ 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> &params)
{
+ 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> &params)
{
+ 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);