|
|
@ -801,6 +801,8 @@ make_config! { |
|
|
sso_enabled: bool, true, def, false; |
|
|
sso_enabled: bool, true, def, false; |
|
|
/// Only SSO login |> Disable Email+Master Password login
|
|
|
/// Only SSO login |> Disable Email+Master Password login
|
|
|
sso_only: bool, true, def, false; |
|
|
sso_only: bool, true, def, false; |
|
|
|
|
|
/// Allow SSO flow to create account |> You probably want to disable it when using a public provider
|
|
|
|
|
|
sso_signups_allowed: bool, true, def, true; |
|
|
/// Allow email association |> Associate existing non-SSO user based on email
|
|
|
/// Allow email association |> Associate existing non-SSO user based on email
|
|
|
sso_signups_match_email: bool, true, def, true; |
|
|
sso_signups_match_email: bool, true, def, true; |
|
|
/// Allow unknown email verification status |> Allowing this with `SSO_SIGNUPS_MATCH_EMAIL=true` open potential account takeover.
|
|
|
/// Allow unknown email verification status |> Allowing this with `SSO_SIGNUPS_MATCH_EMAIL=true` open potential account takeover.
|
|
|
@ -1515,6 +1517,17 @@ impl Config { |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/// Tests whether SSO signup is allowed for an email address, taking into
|
|
|
|
|
|
/// account the sso_signups_allowed and signups_domains_whitelist settings.
|
|
|
|
|
|
pub fn is_sso_signup_allowed(&self, email: &str) -> bool { |
|
|
|
|
|
if self.signups_domains_whitelist().is_empty() { |
|
|
|
|
|
self.sso_signups_allowed() |
|
|
|
|
|
} else { |
|
|
|
|
|
// The whitelist setting overrides the signups_allowed setting.
|
|
|
|
|
|
self.is_email_domain_allowed(email) |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
// The registration link should be hidden if
|
|
|
// The registration link should be hidden if
|
|
|
// - Signup is not allowed and email whitelist is empty unless mail is disabled and invitations are allowed
|
|
|
// - Signup is not allowed and email whitelist is empty unless mail is disabled and invitations are allowed
|
|
|
// - The SSO is activated and password login is disabled.
|
|
|
// - The SSO is activated and password login is disabled.
|
|
|
|