]> jfr.im git - irc/quakenet/newserv.git/commitdiff
Merge.
authorChris Porter <redacted>
Sat, 8 Mar 2008 14:41:05 +0000 (14:41 +0000)
committerChris Porter <redacted>
Sat, 8 Mar 2008 14:41:05 +0000 (14:41 +0000)
chanserv/chanservuser.c

index 99846ca241b43aa46dcce7c1e9c71f9a0273f766..bbd7390da14827e318cc1a1520dead240533bbcc 100644 (file)
@@ -1137,10 +1137,12 @@ void cs_banuser(modechanges *changes, chanindex *cip, nick *np, const char *reas
  *  This function does the standard "nick or #user" lookup.
  *  If "sender" is not NULL, a suitable error message will
  *  be sent if the lookup fails.
+ *  "sender" MUST be sent when a user is requesting a lookup
+ *  as there is some policy code here.
  */
 
 reguser *findreguser(nick *sender, const char *str) {
-  reguser *rup;
+  reguser *rup, *vrup = getreguserfromnick(sender);;
   nick *np;
 
   if (!str || !*str)
@@ -1154,6 +1156,14 @@ reguser *findreguser(nick *sender, const char *str) {
     }
     if (!(rup=findreguserbynick(str+1)) && sender)
       chanservstdmessage(sender, QM_UNKNOWNUSER, str);
+  } else if (*str=='&' && vrup && UHasHelperPriv(vrup)) {
+    if (str[1]=='\0') {
+      if (sender)
+       chanservstdmessage(sender, QM_UNKNOWNUSER, str);
+      return NULL;
+    }
+    if (!(rup=findreguserbyID(atoi(str+1))) && sender)
+      chanservstdmessage(sender, QM_UNKNOWNUSER, str);
   } else {
     if (!(np=getnickbynick(str))) {
       if (sender)