diff options
author | cyberbotx <cyberbotx@5417fbe8-f217-4b02-8779-1006273d7864> | 2009-03-23 00:55:22 +0000 |
---|---|---|
committer | cyberbotx <cyberbotx@5417fbe8-f217-4b02-8779-1006273d7864> | 2009-03-23 00:55:22 +0000 |
commit | a9ced70eed74808eb18cc9d1b7b1f54ed93a8844 (patch) | |
tree | efc6603e2cd71b9efda0957bc654eab1f9c3cb1f /src | |
parent | 5b988a5e1798299aabb1a0ea93136bce6d04b996 (diff) |
Add opertype access checks to OS QUIT, OS RESTART, and OS SHUTDOWN, patch from Adam.
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@2191 5417fbe8-f217-4b02-8779-1006273d7864
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); |