summaryrefslogtreecommitdiff
path: root/modules/commands/cs_list.cpp
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2014-01-06 12:54:29 -0500
committerAdam <Adam@anope.org>2014-01-06 12:54:29 -0500
commit12f55e4711ef4f2624ed0603a05a83a0a5ac4ed7 (patch)
treea7feb6d20e3905da9ca78c33e7b1d046c765e94b /modules/commands/cs_list.cpp
parent43c56541d513f005850a065a09faba9440c24101 (diff)
Hide +s channels from /cs list output to non opers
Diffstat (limited to 'modules/commands/cs_list.cpp')
-rw-r--r--modules/commands/cs_list.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/modules/commands/cs_list.cpp b/modules/commands/cs_list.cpp
index 779745b96..ffaea6172 100644
--- a/modules/commands/cs_list.cpp
+++ b/modules/commands/cs_list.cpp
@@ -81,11 +81,18 @@ class CommandCSList : public Command
{
const ChannelInfo *ci = it->second;
- if (!is_servadmin && (ci->HasExt("CS_PRIVATE") || ci->HasExt("CS_SUSPENDED")))
- continue;
- else if (suspended && !ci->HasExt("CS_SUSPENDED"))
+ if (!is_servadmin)
+ {
+ if (ci->HasExt("CS_PRIVATE") || ci->HasExt("CS_SUSPENDED"))
+ continue;
+ if (ci->c && ci->c->HasMode("SECRET"))
+ continue;
+ }
+
+ if (suspended && !ci->HasExt("CS_SUSPENDED"))
continue;
- else if (channoexpire && !ci->HasExt("CS_NO_EXPIRE"))
+
+ if (channoexpire && !ci->HasExt("CS_NO_EXPIRE"))
continue;
if (pattern.equals_ci(ci->name) || ci->name.equals_ci(spattern) || Anope::Match(ci->name, pattern, false, true) || Anope::Match(ci->name, spattern, false, true))