OperServ: enforce FORBID EMAIL at registration and SET EMAIL
FORBID accepted and stored EMAIL patterns, but nothing ever checked them: a forbidden address still registered and could be set via NickServ SET EMAIL. Both paths now reject a matching address (new ForbiddenEmail outcome), matching how NICK and CHAN forbids already gate registration.
This commit is contained in:
parent
01ea0fa95e
commit
b749cd2969
4 changed files with 28 additions and 0 deletions
|
|
@ -29,6 +29,12 @@ pub fn handle(me: &str, from: &Sender, args: &[&str], ctx: &mut ServiceCtx, db:
|
|||
Some("EMAIL") => {
|
||||
let email = args.get(2).map(|s| s.to_string());
|
||||
let cleared = email.is_none();
|
||||
if let Some(addr) = &email {
|
||||
if db.is_forbidden("EMAIL", addr).is_some() {
|
||||
ctx.notice(me, from.uid, "That email address is forbidden by network policy. Use a different one.");
|
||||
return;
|
||||
}
|
||||
}
|
||||
match db.set_email(account, email) {
|
||||
Ok(()) if cleared => ctx.notice(me, from.uid, format!("Email for \x02{account}\x02 cleared.")),
|
||||
Ok(()) => ctx.notice(me, from.uid, format!("Email for \x02{account}\x02 updated.")),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue