]> jfr.im git - irc/quakenet/newserv.git/blobdiff - chanserv/usercmds/whois.c
CHANSERV: don't allow non-opers to see last realhosts in AUTHHISTORY / WHOIS
[irc/quakenet/newserv.git] / chanserv / usercmds / whois.c
index dee10aec2725fc32f89f55f1519be6b3f9c93855..8a3c59e444e2b9cc6e861c1a68b0e20919a4064c 100644 (file)
@@ -134,8 +134,8 @@ int csu_dowhois(void *source, int cargc, char **cargv) {
   }
 
   if (rup==target)
-    flagmask|=(QUFLAG_OPER | QUFLAG_DEV | QUFLAG_HELPER | 
-              QUFLAG_ADMIN | QUFLAG_INFO | QUFLAG_NOTICE | QUFLAG_STAFF);
+    flagmask|=(QUFLAG_OPER | QUFLAG_DEV | QUFLAG_HELPER | QUFLAG_ADMIN |
+              QUFLAG_INFO | QUFLAG_NOTICE | QUFLAG_STAFF | QUFLAG_ACHIEVEMENTS);
 
   if (flagmask & target->flags)
     chanservstdmessage(sender, QM_WHOIS_FLAGS, printflagsornone(flagmask & target->flags, ruflags));
@@ -172,7 +172,9 @@ int csu_dowhois(void *source, int cargc, char **cargv) {
 /* Commenting out language until we implement some - splidge 
     chanservstdmessage(sender, QM_WHOIS_USERLANG, cslanguages[target->languageid] ?
                       cslanguages[target->languageid]->name->content : "(unknown)");  */
-    chanservstdmessage(sender, QM_WHOIS_LASTUSERHOST, target->lastuserhost->content);
+    if(rup==target || cs_privcheck(QPRIV_VIEWREALHOST, sender)) {
+      chanservstdmessage(sender, QM_WHOIS_LASTUSERHOST, target->lastuserhost->content);
+    }
   }
 
   if (target->email && (rup==target || cs_privcheck(QPRIV_VIEWEMAIL, sender))) {