charybdis-ircd / charybdis

Scalable IRCv3.2 server for large, community-oriented networks
GNU General Public License v2.0
231 stars 102 forks source link

Rework oper hiding #279

Closed edk0 closed 4 years ago

edk0 commented 5 years ago

As it stands, oper hiding is rather messy and inconsistent. Add SeesOper(target, source), which is true iff target should appear as an oper to source. If I haven't missed something, all commands that reveal oper status now use the same logic.

general::hide_opers_in_whois is a special case, and affects /whois only.

general::hide_opers is introduced, and has the same effect as giving everyone oper:hidden. All commands that reveal oper status respect both.