GroupServ
The point of GroupServ is to manage lists of nicks for use in channel access lists.
- A group has a name, a description, a creation date, a privacy setting, a list of admins, and a list of members.
- A group name starts with an @ ("AT") character to distinguish it from nicknames.
- The lists of admins and members can contain accounts (nicks) as well as groups. (cycles are possible and should be dealt with correctly)
GroupServ manages groups. In particular it
- allows everybody to create new groups,
- allows everybody to list non-private groups,
- allows everybody to query information about a specific group - The information provided depends on the channel's privacy setting: Everybody gets name, description, creation date. The list of members is restricted to members and admins (and opers) if the channel is private (Should the list of admins be restricted too?) -,
- allows group admins to drop their group (provided no channel becomes masterless with that action?),
- allows group admins to add/remove admins and members,
- allows group admins to toggle the privacy setting,
- provides a sudo method for services admins to do actions with the privileges of a group admin.
Changes required to ChanServ:
- needs to allow groups in place of a nick in channel access lists.
- special care must be taken to handle the case correctly where an account (nick) is on the access list multiple times, be it once as a nick and once via a group or via different groups. In such cases the one access entry that grants the highest permission should be used.
Changes required to NickServ:
- maybe show the list of groups an account is in with info (limited to opers and that person, just like channel lists).
