From 257b10ee912698c6378f0d02a851e3c298dc8b78 Mon Sep 17 00:00:00 2001 From: Adam Date: Wed, 2 Oct 2013 13:23:25 -0400 Subject: Hide privileged commands in ns help set and cs help set if configured --- modules/commands/cs_set.cpp | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) (limited to 'modules/commands/cs_set.cpp') diff --git a/modules/commands/cs_set.cpp b/modules/commands/cs_set.cpp index 86b874d76..75c9348fe 100644 --- a/modules/commands/cs_set.cpp +++ b/modules/commands/cs_set.cpp @@ -35,18 +35,26 @@ class CommandCSSet : public Command " \n" "Available options:")); Anope::string this_name = source.command; + bool hide_privileged_commands = Config->GetBlock("options")->Get("hideprivilegedcommands"); for (CommandInfo::map::const_iterator it = source.service->commands.begin(), it_end = source.service->commands.end(); it != it_end; ++it) { const Anope::string &c_name = it->first; const CommandInfo &info = it->second; if (c_name.find_ci(this_name + " ") == 0) { - ServiceReference command("Command", info.name); - if (command) - { - source.command = it->first; - command->OnServHelp(source); - } + ServiceReference c("Command", info.name); + + if (!c) + continue; + else if (!hide_privileged_commands) + ; // Always show with hide_privileged_commands disabled + else if (!c->AllowUnregistered() && !source.GetAccount()) + continue; + else if (!info.permission.empty() && !source.HasCommand(info.permission)) + continue; + + source.command = it->first; + c->OnServHelp(source); } } source.Reply(_("Type \002%s%s HELP %s \037option\037\002 for more information on a\n" -- cgit