Add opt-in external-account mode (delegate identity to the website)
By default fedserv owns accounts itself — nothing changes, no external
service required. Set [auth] external = true and an outside authority (the
website) owns identity instead: NickServ REGISTER / DROP / SET
PASSWORD|EMAIL / RESETPASS / CONFIRM / CERT / GROUP and the IRCv3
registration relay are all refused ("managed on the website"), so IRC
can't mint or change a second identity. Login is unchanged — fedserv still
authenticates locally against the accounts the authority pushes in via the
existing gRPC Accounts API, so lookups stay in-memory fast.
fedserv keeps owning all IRC-domain data (channels, access, vhosts, bans,
memos) keyed by the account name in both modes. One config bool, off by
default, so standalone deployments are unaffected.
This commit is contained in:
parent
4c899d80b0
commit
fba91b4d62
8 changed files with 108 additions and 3 deletions
|
|
@ -776,6 +776,9 @@ pub trait Store {
|
|||
fn set_defcon(&mut self, level: u8);
|
||||
fn registrations_frozen(&self) -> bool;
|
||||
fn channel_regs_frozen(&self) -> bool;
|
||||
// Whether account identity is owned externally (website); when true, IRC
|
||||
// can't register or change credentials — it only authenticates.
|
||||
fn external_accounts(&self) -> bool;
|
||||
// Staff notes on accounts/channels (oper-only), shown in INFO to operators.
|
||||
fn set_account_note(&mut self, account: &str, note: Option<String>) -> bool;
|
||||
fn account_note(&self, account: &str) -> Option<String>;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue