]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/whois.cpp
Change <security:operspywhois> to a tristate
[user/henk/code/inspircd.git] / src / whois.cpp
index 1f21553c5b1ca89ee9e2e4baa5dce10d336ed8db..4aa5e47265db53a39fa69b67809d4f181677d236 100644 (file)
@@ -2,7 +2,7 @@
  *       | Inspire Internet Relay Chat Daemon |
  *       +------------------------------------+
  *
- *  InspIRCd: (C) 2002-2009 InspIRCd Development Team
+ *  InspIRCd: (C) 2002-2010 InspIRCd Development Team
  * See: http://wiki.inspircd.org/Credits
  *
  * This program is free but copyrighted software; see
@@ -23,16 +23,13 @@ void InspIRCd::DoWhois(User* user, User* dest,unsigned long signon, unsigned lon
 
        std::string cl = dest->ChannelList(user, false);
 
-       if (cl.length())
-               user->SplitChanList(dest,cl);
-       if (IS_OPER(user) && ServerInstance->Config->OperSpyWhois)
+       user->SplitChanList(dest,cl);
+       if (user->HasPrivPermission("users/auspex") && ServerInstance->Config->OperSpyWhois != ServerConfig::SPYWHOIS_NONE)
        {
                std::string scl = dest->ChannelList(user, true);
-               if (scl.length())
-               {
-                       this->SendWhoisLine(user, dest, 336, "%s %s :is on private/secret channels:",user->nick.c_str(), dest->nick.c_str());
-                       user->SplitChanList(dest,scl);
-               }
+               if (scl.length() && ServerInstance->Config->OperSpyWhois == ServerConfig::SPYWHOIS_SPLITMSG)
+                       SendWhoisLine(user, dest, 336, "%s %s :is on private/secret channels:",user->nick.c_str(), dest->nick.c_str());
+               user->SplitChanList(dest,scl);
        }
        if (user != dest && !this->Config->HideWhoisServer.empty() && !user->HasPrivPermission("servers/auspex"))
        {