]> jfr.im git - solanum.git/blobdiff - ircd/chmode.c
WHOIS: Make hide_opers_in_whois not affect opers doing whois.
[solanum.git] / ircd / chmode.c
index 127494ee5bb25bf1e44eae3f2811d3cdced7753d..f1c32b6deb9e13bb86b4ee365d234c78fc37e213 100644 (file)
@@ -225,7 +225,7 @@ allow_mode_change(struct Client *source_p, struct Channel *chptr, int alevel,
                *errors |= SM_ERR_MLOCK;
                return 0;
        }
-       if(alevel != CHFL_CHANOP)
+       if(alevel < CHFL_CHANOP)
        {
                if(!(*errors & SM_ERR_NOOPS))
                        sendto_one(source_p, form_str(ERR_CHANOPRIVSNEEDED),
@@ -518,7 +518,7 @@ check_forward(struct Client *source_p, struct Channel *chptr,
        if(MyClient(source_p) && !(targptr->mode.mode & MODE_FREETARGET))
        {
                if((msptr = find_channel_membership(targptr, source_p)) == NULL ||
-                       get_channel_access(source_p, targptr, msptr, MODE_QUERY, NULL) != CHFL_CHANOP)
+                       get_channel_access(source_p, targptr, msptr, MODE_QUERY, NULL) < CHFL_CHANOP)
                {
                        sendto_one(source_p, form_str(ERR_CHANOPRIVSNEEDED),
                                   me.name, source_p->name, targptr->chname);
@@ -836,7 +836,7 @@ chm_ban(struct Client *source_p, struct Channel *chptr,
 
                /* non-ops cant see +eI lists.. */
                /* note that this is still permitted if +e/+I are mlocked. */
-               if(alevel != CHFL_CHANOP && mode_type != CHFL_BAN &&
+               if(alevel < CHFL_CHANOP && mode_type != CHFL_BAN &&
                                mode_type != CHFL_QUIET)
                {
                        if(!(*errors & SM_ERR_NOOPS))