]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/command_parse.cpp
Missing include breaks "make clean" on the cmd_* files
[user/henk/code/inspircd.git] / src / command_parse.cpp
index 1a32456b25e1b82ffe60861bd8b75593dc8fa0da..386f0932176a46e5a92becbab3ec9ebebc3ffad4 100644 (file)
@@ -229,39 +229,34 @@ void CommandParser::ProcessCommand(userrec *user, std::string &cmd)
                {
                        /* activity resets the ping pending timer */
                        user->nping = TIME + user->pingmax;
-                       if (items < cm->second->min_params)
-                       {
-                               log(DEBUG,"not enough parameters: %s %s",user->nick,command.c_str());
-
-                               /* If syntax is given, display this as the 461 reply */
-                               if (cm->second->syntax.length())
-                                       WriteServ(user->fd,"461 %s %s :Syntax: %s %s", cm->second->command.c_str(), cm->second->syntax.c_str());
-                               else
-                                       WriteServ(user->fd,"461 %s %s :Not enough parameters",user->nick,command.c_str());
-                               return;
-                       }
                        if (cm->second->flags_needed)
                        {
                                if (!user->IsModeSet(cm->second->flags_needed))
                                {
-                                       log(DEBUG,"permission denied: %s %s",user->nick,command.c_str());
                                        WriteServ(user->fd,"481 %s :Permission Denied- You do not have the required operator privilages",user->nick);
                                        return;
                                }
+                               if (!user->HasPermission(command))
+                               {
+                                       WriteServ(user->fd,"481 %s :Permission Denied- Oper type %s does not have access to command %s",user->nick,user->oper,command.c_str());
+                                       return;
+                               }
                        }
-                       if ((cm->second->flags_needed) && (!user->HasPermission(command)))
+                       if ((user->registered == REG_ALL) && (!*user->oper) && (cm->second->IsDisabled()))
                        {
-                               log(DEBUG,"permission denied: %s %s",user->nick,command.c_str());
-                               WriteServ(user->fd,"481 %s :Permission Denied- Oper type %s does not have access to command %s",user->nick,user->oper,command.c_str());
+                               /* command is disabled! */
+                               WriteServ(user->fd,"421 %s %s :This command has been disabled.",user->nick,command.c_str());
                                return;
                        }
-                       if ((user->registered == 7) && (!*user->oper) && (cm->second->IsDisabled()))
+                       if (items < cm->second->min_params)
                        {
-                               /* command is disabled! */
-                               WriteServ(user->fd,"421 %s %s :This command has been disabled.",user->nick,command.c_str());
+                               WriteServ(user->fd,"461 %s %s :Not enough parameters.", user->nick, command.c_str());
+                               /* If syntax is given, display this as the 461 reply */
+                               if ((Config->SyntaxHints) && (cm->second->syntax.length()))
+                                       WriteServ(user->fd,"304 %s :SYNTAX %s %s", user->nick, cm->second->command.c_str(), cm->second->syntax.c_str());
                                return;
                        }
-                       if ((user->registered == 7) || (cm->second == command_user) || (cm->second == command_nick) || (cm->second == command_pass))
+                       if ((user->registered == REG_ALL) || (cm->second == command_user) || (cm->second == command_nick) || (cm->second == command_pass))
                        {
                                /* ikky /stats counters */
                                cm->second->use_count++;