summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/commands.c22
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);