]> jfr.im git - irc/quakenet/newserv.git/blobdiff - chanserv/chanservuser.c
Merge.
[irc/quakenet/newserv.git] / chanserv / chanservuser.c
index 8f07ff78012ad2e35d14088befae52cc67d42805..b4ed4fa5d1c40a289174e8422f5e54e0d5699e9e 100644 (file)
@@ -143,6 +143,12 @@ void chanservuserhandler(nick *target, int message, void **params) {
        break;
       }
       
+      if ((cmd->level & QCMD_STAFF) && 
+         (!(rup=getreguserfromnick(sender)) || !UHasStaffPriv(rup))) {
+       chanservstdmessage(sender, QM_NOACCESS, cargv[0]);
+       break;
+      }
+      
       if ((cmd->level & QCMD_HELPER) && 
          (!(rup=getreguserfromnick(sender)) || !UHasHelperPriv(rup))) {
        chanservstdmessage(sender, QM_NOACCESS, cargv[0]);
@@ -580,6 +586,7 @@ void cs_checknick(nick *np) {
       rup->created=time(NULL);
       rup->lastauth=0;
       rup->lastemailchange=0;
+      rup->lastpasschange=0;
       rup->flags=QUFLAG_NOTICE;
       rup->languageid=0;
       rup->suspendby=0;
@@ -673,7 +680,7 @@ void cs_docheckopvoice(channel *cp, modechanges *changes) {
       continue;
       
     if ((np=getnickbynumeric(cp->users->content[i]))==NULL) {
-      Error("chanserv",ERR_ERROR,"Found non-existent numeric %d on channel %s",cp->users->content[i],
+      Error("chanserv",ERR_ERROR,"Found non-existent numeric %lu on channel %s",cp->users->content[i],
             cp->index->name->content);
       continue;
     }
@@ -732,6 +739,10 @@ void cs_doallautomodes(nick *np) {
     return;
   
   for (rcup=rup->knownon;rcup;rcup=rcup->nextbyuser) {
+    /* Skip suspended channels */
+    if (CIsSuspended(rcup->chan))
+      continue;
+      
     if (rcup->chan->index->channel) {
       /* Channel exists */
       if ((lp=getnumerichandlefromchanhash(rcup->chan->index->channel->users, np->numeric))) {
@@ -828,7 +839,7 @@ void cs_checkbans(channel *cp) {
       continue;
     
     if ((np=getnickbynumeric(cp->users->content[i]))==NULL) {
-      Error("chanserv",ERR_ERROR,"Found numeric %d on channel %s who doesn't exist.",
+      Error("chanserv",ERR_ERROR,"Found numeric %lu on channel %s who doesn't exist.",
            cp->users->content[i], cp->index->name->content);
       continue;
     }
@@ -1280,7 +1291,7 @@ reguser *findreguser(nick *sender, const char *str) {
     }
     if (!(rup=findreguserbynick(str+1)) && sender)
       chanservstdmessage(sender, QM_UNKNOWNUSER, str);
-  } else if (*str=='&' && vrup && UHasHelperPriv(vrup)) {
+  } else if (*str=='&' && vrup && UHasStaffPriv(vrup)) {
     if (str[1]=='\0') {
       if (sender)
        chanservstdmessage(sender, QM_UNKNOWNUSER, str);