echo/chanserv/src
Jean 09be99785e
Add GroupServ, with groups that grant channel access
User groups (!name) — a founder plus member accounts, each with group-
access flags (the shared flag primitive: F founder, f manage, i invite,
c chan-access, s set, m memo). REGISTER/DROP/INFO/LIST/ADD/DEL/FLAGS;
event-sourced and federated like accounts.

The flagship interconnection: a channel access entry may name a !group, so
every member inherits that channel access. Resolution is group-aware — a
new db.channel_caps() unions a user's direct access with any group they
belong to, and the engine's join handler auto-ops/voices through it. So
"ChanServ FLAGS #chan !team +o" auto-ops every member of !team, and
removing someone from the group revokes it. Opt-in.
2026-07-14 04:26:07 +00:00
..
access.rs modules: split services and the ircd link into external crates 2026-07-13 01:33:56 +00:00
akick.rs modules: split services and the ircd link into external crates 2026-07-13 01:33:56 +00:00
ban.rs chanserv: SET PEACE (block acting against equal-or-higher access) 2026-07-13 03:06:58 +00:00
clone.rs modules: split services and the ircd link into external crates 2026-07-13 01:33:56 +00:00
enforce.rs modules: split services and the ircd link into external crates 2026-07-13 01:33:56 +00:00
entrymsg.rs modules: split services and the ircd link into external crates 2026-07-13 01:33:56 +00:00
flags.rs Add GroupServ, with groups that grant channel access 2026-07-14 04:26:07 +00:00
getkey.rs modules: split services and the ircd link into external crates 2026-07-13 01:33:56 +00:00
invite.rs modules: split services and the ircd link into external crates 2026-07-13 01:33:56 +00:00
kick.rs chanserv: SET PEACE (block acting against equal-or-higher access) 2026-07-13 03:06:58 +00:00
lib.rs Add a shared channel-access FLAGS model 2026-07-14 04:15:28 +00:00
list.rs chanserv: SET SIGNKICK and PRIVATE (typed channel settings) 2026-07-13 02:54:46 +00:00
mode.rs modules: split services and the ircd link into external crates 2026-07-13 01:33:56 +00:00
noexpire.rs Add lazy inactivity-expiry for accounts and channels 2026-07-14 00:02:36 +00:00
op.rs chanserv: SET PEACE (block acting against equal-or-higher access) 2026-07-13 03:06:58 +00:00
seen.rs modules: split services and the ircd link into external crates 2026-07-13 01:33:56 +00:00
set.rs Clippy sweep: clean across the workspace 2026-07-13 23:30:51 +00:00
status.rs modules: split services and the ircd link into external crates 2026-07-13 01:33:56 +00:00
suspend.rs chanserv: channel SUSPEND / UNSUSPEND (oper-gated) 2026-07-13 04:17:17 +00:00
topic.rs modules: split services and the ircd link into external crates 2026-07-13 01:33:56 +00:00
unban.rs modules: split services and the ircd link into external crates 2026-07-13 01:33:56 +00:00
xop.rs modules: split services and the ircd link into external crates 2026-07-13 01:33:56 +00:00