nickserv: AJOIN auto-join list
Adds the account auto-join list (AJOIN ADD/DEL/LIST): NickServ SVSJOINs you into your listed channels each time you identify. The list is a typed Vec<AjoinEntry> on the account, folded through the event log like the cert and akick lists (persists and replays; no separate store), reached by modules through the Store trait. New ForceJoin action serialises to InspIRCd SVSJOIN. Shown in INFO. Operates on the caller's own account; the oper form for other users waits on a privilege system.
This commit is contained in:
parent
e0bb3a1fea
commit
75ba9b35b4
9 changed files with 211 additions and 5 deletions
|
|
@ -122,6 +122,8 @@ fn to_wire(entry: &LogEntry) -> Option<ReplicationEvent> {
|
|||
Event::CertAdded { .. }
|
||||
| Event::CertRemoved { .. }
|
||||
| Event::AccountPasswordSet { .. }
|
||||
| Event::AjoinAdded { .. }
|
||||
| Event::AjoinRemoved { .. }
|
||||
| Event::ChannelMlock { .. }
|
||||
| Event::ChannelAccessAdd { .. }
|
||||
| Event::ChannelAccessDel { .. }
|
||||
|
|
@ -351,6 +353,7 @@ mod tests {
|
|||
scram512: None,
|
||||
certfps: vec!["deadbeef".into()],
|
||||
verified: true,
|
||||
ajoin: vec![],
|
||||
};
|
||||
let registered = LogEntry::for_test("A", 0, 1, Event::AccountRegistered(acct));
|
||||
let wire = to_wire(®istered).expect("account registration replicates");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue