aboutsummaryrefslogtreecommitdiffstats
path: root/src/channels.cpp
diff options
context:
space:
mode:
authorGravatar Attila Molnar2014-01-21 18:44:08 +0100
committerGravatar Attila Molnar2014-01-21 18:44:08 +0100
commite244cb2c63b1ac1d85bdbb4691f7b1bd940ae804 (patch)
tree5a69b0efe6c0b7ab88925d3d066271ec40845e23 /src/channels.cpp
parentm_spanningtree Fix routing of ROUTE_TYPE_MESSAGE messages (diff)
parentRelease 2.0.15 (diff)
downloadinspircd++-e244cb2c63b1ac1d85bdbb4691f7b1bd940ae804.tar.gz
inspircd++-e244cb2c63b1ac1d85bdbb4691f7b1bd940ae804.tar.bz2
inspircd++-e244cb2c63b1ac1d85bdbb4691f7b1bd940ae804.zip
Merge insp20
Diffstat (limited to 'src/channels.cpp')
-rw-r--r--src/channels.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/channels.cpp b/src/channels.cpp
index 563bc2704..5865f6724 100644
--- a/src/channels.cpp
+++ b/src/channels.cpp
@@ -654,7 +654,8 @@ const char* Channel::ChanModes(bool showkey)
*/
void Channel::UserList(User *user)
{
- if (this->IsModeSet(secretmode) && !this->HasUser(user) && !user->HasPrivPermission("channels/auspex"))
+ bool has_privs = user->HasPrivPermission("channels/auspex");
+ if (this->IsModeSet(secretmode) && !this->HasUser(user) && !has_privs)
{
user->WriteNumeric(ERR_NOSUCHNICK, "%s :No such nick/channel", this->name.c_str());
return;
@@ -679,7 +680,7 @@ void Channel::UserList(User *user)
{
if (i->first->quitting)
continue;
- if ((!has_user) && (i->first->IsModeSet(invisiblemode)))
+ if ((!has_user) && (i->first->IsModeSet(invisiblemode)) && (!has_privs))
{
/*
* user is +i, and source not on the channel, does not show