]> jfr.im git - irc/quakenet/newserv.git/blobdiff - chanserv/chanservprivs.c
LUA: port luadb to dbapi2 to drop postgres dependency
[irc/quakenet/newserv.git] / chanserv / chanservprivs.c
index cd0976e715a4fc0804c5dec6da9bd02ac0297e87..e9dd62ff27d5e0514522a07894b4a3ace89dced1 100644 (file)
@@ -34,6 +34,8 @@ int cs_privcheck(int privnum, nick *np) {
   case QPRIV_CHANGEUSERFLAGS:
   case QPRIV_VIEWSUSPENDEDBY:
   case QPRIV_VIEWWALLMESSAGE: /* if you change VIEWWALLMESSAGE alter chanservwallmessage too */
+  case QPRIV_VIEWREALHOST:
+  case QPRIV_RESETCHANSTAT:
     return (np && rup && IsOper(np) && UHasOperPriv(rup));
     
   default: /* By default opers can override anything */
@@ -80,9 +82,9 @@ chanindex *cs_checkaccess(nick *np, const char *chan, unsigned int flags,
   
   if (!cs_privcheck(priv,np)) {
     if ((flags & CA_VOICEPRIV) &&
-       !(rcp && (CIsVoiceAll(rcp)) && 
-         !(cip->channel && (nickbanned_visible(np, cip->channel) || IsInviteOnly(cip->channel)))) &&
-       !(rcup && (CUHasVoicePriv(rcup)))) {
+       !(rcp && CIsVoiceAll(rcp) && !(rcup && CUIsQuiet(rcup)) &&
+         !(cip->channel && (nickbanned(np, cip->channel, 1) || IsInviteOnly(cip->channel)))) &&
+       !(rcup && CUHasVoicePriv(rcup))) {
       if (!quiet) chanservstdmessage(np, QM_NOACCESSONCHAN, cip->name->content, cmdname);
       return NULL;
     }