Browse Source
use email instead of empty name for webauhn (#6733)
* if empty use email instead of name for webauhn
* use email as display name if name is empty
pull/6734/head
Stefan Melmuk
7 days ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with
13 additions and
4 deletions
-
src/api/core/organizations.rs
-
src/api/core/two_factor/webauthn.rs
-
src/api/identity.rs
-
src/db/models/user.rs
|
|
|
@ -3207,7 +3207,7 @@ async fn put_reset_password( |
|
|
|
|
|
|
|
// Sending email before resetting password to ensure working email configuration and the resulting
|
|
|
|
// user notification. Also this might add some protection against security flaws and misuse
|
|
|
|
if let Err(e) = mail::send_admin_reset_password(&user.email, &user.name, &org.name).await { |
|
|
|
if let Err(e) = mail::send_admin_reset_password(&user.email, user.display_name(), &org.name).await { |
|
|
|
err!(format!("Error sending user reset password email: {e:#?}")); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ -144,7 +144,7 @@ async fn generate_webauthn_challenge(data: Json<PasswordOrOtpData>, headers: Hea |
|
|
|
let (mut challenge, state) = WEBAUTHN.start_passkey_registration( |
|
|
|
Uuid::from_str(&user.uuid).expect("Failed to parse UUID"), // Should never fail
|
|
|
|
&user.email, |
|
|
|
&user.name, |
|
|
|
user.display_name(), |
|
|
|
Some(registrations), |
|
|
|
)?; |
|
|
|
|
|
|
|
|
|
|
|
@ -266,7 +266,7 @@ async fn _sso_login( |
|
|
|
Some((user, _)) if !user.enabled => { |
|
|
|
err!( |
|
|
|
"This user has been disabled", |
|
|
|
format!("IP: {}. Username: {}.", ip.ip, user.name), |
|
|
|
format!("IP: {}. Username: {}.", ip.ip, user.display_name()), |
|
|
|
ErrorEvent { |
|
|
|
event: EventType::UserFailedLogIn |
|
|
|
} |
|
|
|
@ -521,7 +521,7 @@ async fn authenticated_response( |
|
|
|
result["TwoFactorToken"] = Value::String(token); |
|
|
|
} |
|
|
|
|
|
|
|
info!("User {} logged in successfully. IP: {}", &user.name, ip.ip); |
|
|
|
info!("User {} logged in successfully. IP: {}", user.display_name(), ip.ip); |
|
|
|
Ok(Json(result)) |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ -231,6 +231,15 @@ impl User { |
|
|
|
pub fn reset_stamp_exception(&mut self) { |
|
|
|
self.stamp_exception = None; |
|
|
|
} |
|
|
|
|
|
|
|
pub fn display_name(&self) -> &str { |
|
|
|
// default to email if name is empty
|
|
|
|
if !&self.name.is_empty() { |
|
|
|
&self.name |
|
|
|
} else { |
|
|
|
&self.email |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/// Database methods
|
|
|
|
|