@ -243,6 +243,8 @@ make_config! {
disable_icon_download : bool , true , def , false ;
disable_icon_download : bool , true , def , false ;
/// Allow new signups |> Controls if new users can register. Note that while this is disabled, users could still be invited
/// Allow new signups |> Controls if new users can register. Note that while this is disabled, users could still be invited
signups_allowed : bool , true , def , true ;
signups_allowed : bool , true , def , true ;
/// Allow signups only from this list of comma-separated domains
signups_domains_whitelist : String , true , def , "" . to_string ( ) ;
/// Allow invitations |> Controls whether users can be invited by organization admins, even when signups are disabled
/// Allow invitations |> Controls whether users can be invited by organization admins, even when signups are disabled
invitations_allowed : bool , true , def , true ;
invitations_allowed : bool , true , def , true ;
/// Password iterations |> Number of server-side passwords hashing iterations.
/// Password iterations |> Number of server-side passwords hashing iterations.
@ -491,6 +493,16 @@ impl Config {
self . update_config ( builder )
self . update_config ( builder )
}
}
pub fn can_signup_user ( & self , email : & str ) -> bool {
let e : Vec < & str > = email . rsplitn ( 2 , "@" ) . collect ( ) ;
if e . len ( ) ! = 2 | | e [ 0 ] . is_empty ( ) | | e [ 1 ] . is_empty ( ) {
warn ! ( "Failed to parse email address '{}'" , email ) ;
return false
}
self . signups_domains_whitelist ( ) . split ( "," ) . any ( | d | d = = e [ 0 ] )
}
pub fn delete_user_config ( & self ) -> Result < ( ) , Error > {
pub fn delete_user_config ( & self ) -> Result < ( ) , Error > {
crate ::util ::delete_file ( & CONFIG_FILE ) ? ;
crate ::util ::delete_file ( & CONFIG_FILE ) ? ;