Persist the channel topic setter as a nick!ident@host mask for KEEPTOPIC and INFO
All checks were successful
CI / check (push) Successful in 5m34s
All checks were successful
CI / check (push) Successful in 5m34s
This commit is contained in:
parent
9ccc681a62
commit
948a59707e
17 changed files with 102 additions and 35 deletions
|
|
@ -3810,11 +3810,11 @@
|
|||
db.register_channel("#c", "boss").unwrap();
|
||||
db.set_channel_setting("#c", db::ChanSetting::KeepTopic, true).unwrap();
|
||||
db.set_channel_setting("#c", db::ChanSetting::TopicLock, true).unwrap();
|
||||
db.set_channel_topic("#c", "Official topic").unwrap();
|
||||
db.set_channel_topic("#c", "Official topic", "alice").unwrap();
|
||||
let mut e = Engine::new(vec![Box::new(ChanServ { uid: "42SAAAAAB".into() })], db);
|
||||
e.handle(NetEvent::UserConnect { uid: "000AAAAAB".into(), nick: "rando".into(), host: "h".into() , ip: "0.0.0.0".into() });
|
||||
// A user without access changes the topic -> reverted to the stored one.
|
||||
let out = e.handle(NetEvent::TopicChange { channel: "#c".into(), setter: "000AAAAAB".into(), topic: "hacked".into() });
|
||||
let out = e.handle(NetEvent::TopicChange { channel: "#c".into(), setter: "000AAAAAB".into(), topic: "hacked".into(), setby: String::new() });
|
||||
assert!(out.iter().any(|a| matches!(a, NetAction::Topic { topic, .. } if topic == "Official topic")), "topiclock reverts: {out:?}");
|
||||
// KEEPTOPIC restores the remembered topic on channel (re)creation.
|
||||
let out = e.handle(NetEvent::ChannelCreate { channel: "#c".into() });
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue