chanserv: LEVELS grants a capability (op/topic/invite/access) to an access tier and above, additive so it never locks anyone out

This commit is contained in:
Jean Chevronnet 2026-07-18 01:05:58 +00:00
parent 0c3e09ea00
commit d313ca3523
No known key found for this signature in database
10 changed files with 275 additions and 6 deletions

View file

@ -439,6 +439,10 @@ pub struct ChannelInfo {
pub access: Vec<ChanAccess>,
#[serde(default)]
pub akick: Vec<ChanAkick>,
// LEVELS overrides as (capability, tier) name pairs — a capability granted to
// that access tier and above. Strings at the persistence seam; typed in the view.
#[serde(default)]
pub levels: Vec<(String, String)>,
// Account that inherits the channel if the founder's account is dropped or
// expires; None means the channel is released instead.
#[serde(default)]