Page MenuHomePhabricator

Handle exemption setting on -en-help
Open, HighPublic

Description

Currently, Sigyn sets mode +qz $~a on -en-help when it raises it's defcon level. This causes problems because we either have to leave a permanent exemption in place for the web gateway, op all helpers, or disable this otherwise-useful feature.

Leaving a permanent exemption in place is nasty, because that prevents us from using bans/quiets on problematic helpers. Opping helpers is a bad idea, given the levels of trust that chanops needs, and not all helpers are considered trustworthy enough by all channel contacts and group contacts.

As such, Helpmebot is going to get a new feature to manage the exemption list itself.


We need:

  • Detection of when an overly-restrictive mode is set
  • Detection of the current status of the channel on join.
  • Ability to op/deop self
  • Ability to be overridden if necessary

On-join:

  • Detect +r, override
  • Detect +m, override with +qez $~a
  • Detect +b or +q $~a, ensure +e is set
  • Detect missing +z when +b or +q $~a is set

On mode change:

  • If +b or +q $~a is set, op up, set +e
  • If -b or -q $~a is unset, unset +e and deop
  • If -e while +b/+q, warn, stay opped
  • If +m or +r is set, override, educate (unless being set again within a minute of being set)

mode-monitor-fsm.png (1×1 px, 179 KB)