summaryrefslogtreecommitdiff
path: root/modules/commands/help.cpp
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2012-11-01 16:15:44 -0400
committerAdam <Adam@anope.org>2012-11-01 16:15:44 -0400
commita0a54fdfe058026f028dc0930e3ba982bce5b6dc (patch)
tree255ad4ecee2a6407c1113fc98ccd76bbfec0bfaa /modules/commands/help.cpp
parentd90d5d538bdbf6db2c1ca39e998e80c28a7b3c75 (diff)
Expand options:hideprivilegedcommands to not show commands requiring authentication to unidentified users
Diffstat (limited to 'modules/commands/help.cpp')
-rw-r--r--modules/commands/help.cpp22
1 files changed, 15 insertions, 7 deletions
diff --git a/modules/commands/help.cpp b/modules/commands/help.cpp
index 28bf963a8..de80a6ec1 100644
--- a/modules/commands/help.cpp
+++ b/modules/commands/help.cpp
@@ -48,11 +48,16 @@ class CommandHelp : public Command
service_reference<Command> c("Command", info.name);
if (!c)
continue;
- if (!Config->HidePrivilegedCommands || info.permission.empty() || source.HasCommand(info.permission))
- {
- source.command = c_name;
- c->OnServHelp(source);
- }
+ else if (!Config->HidePrivilegedCommands)
+ ; // Always show with HidePrivilegedCommands disabled
+ else if (!c->HasFlag(CFLAG_ALLOW_UNREGISTERED) && !source.GetAccount())
+ continue;
+ else if (!info.permission.empty() && !source.HasCommand(info.permission))
+ continue;
+
+ source.command = c_name;
+ c->OnServHelp(source);
+
}
}
else
@@ -74,9 +79,12 @@ class CommandHelp : public Command
service_reference<Command> c("Command", info.name);
if (!c)
continue;
-
- if (Config->HidePrivilegedCommands && !info.permission.empty() && !source.HasCommand(info.permission))
+ else if (!Config->HidePrivilegedCommands)
+ ; // Always show with HidePrivilegedCommands disabled
+ else if (!info.permission.empty() && !source.HasCommand(info.permission))
continue;
+
+ // Allow unregistered users to see help for commands that they explicitly request help for
const Anope::string &subcommand = params.size() > max ? params[max] : "";
source.command = full_command;