diff options
-rw-r--r-- | src/commands.c | 22 |
1 files changed, 8 insertions, 14 deletions
diff --git a/src/commands.c b/src/commands.c index a95a9f7b2..344805f9a 100644 --- a/src/commands.c +++ b/src/commands.c @@ -88,17 +88,6 @@ void mod_run_cmd(char *service, User * u, CommandHash * cmdTable[], const char * // Check whether or not access string is empty } - if (!c->permission.empty()) - { - if (!u->nc->HasPriv(c->permission) && !u->nc->HasCommand(c->permission)) - { - notice_lang(service, u, ACCESS_DENIED); - alog("Access denied for user %s with service %s and command %s", u->nick, service, cmd); - return; - } - - } - std::vector<std::string> params; std::string curparam; char *s = NULL; @@ -158,10 +147,15 @@ void mod_run_cmd(char *service, User * u, CommandHash * cmdTable[], const char * } // If the command requires a permission, and they aren't registered or don't have the required perm, DENIED - if (!c->permission.empty() && (!u->nc || !u->nc->HasCommand(c->permission))) + if (!c->permission.empty()) { - notice_lang(service, u, ACCESS_DENIED); - return; + if (!u->nc->HasPriv(c->permission) && !u->nc->HasCommand(c->permission)) + { + notice_lang(service, u, ACCESS_DENIED); + alog("Access denied for user %s with service %s and command %s", u->nick, service, cmd); + return; + } + } retVal = c->Execute(u, params); |