Browse Source
fix account recovery withdrawal (#5968)
since `web-v2025.4.0` the client sends `""` instead of `null`, so we
also have to check whether the `reset_password_key` is empty or not.
pull/3899/head^2
Stefan Melmuk
2 weeks ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with
9 additions and
5 deletions
-
src/api/core/organizations.rs
|
|
@ -3334,13 +3334,17 @@ async fn put_reset_password_enrollment( |
|
|
|
|
|
|
|
let reset_request = data.into_inner(); |
|
|
|
|
|
|
|
if reset_request.reset_password_key.is_none() |
|
|
|
&& OrgPolicy::org_is_reset_password_auto_enroll(&org_id, &mut conn).await |
|
|
|
{ |
|
|
|
let reset_password_key = match reset_request.reset_password_key { |
|
|
|
None => None, |
|
|
|
Some(ref key) if key.is_empty() => None, |
|
|
|
Some(key) => Some(key), |
|
|
|
}; |
|
|
|
|
|
|
|
if reset_password_key.is_none() && OrgPolicy::org_is_reset_password_auto_enroll(&org_id, &mut conn).await { |
|
|
|
err!("Reset password can't be withdrawn due to an enterprise policy"); |
|
|
|
} |
|
|
|
|
|
|
|
if reset_request.reset_password_key.is_some() { |
|
|
|
if reset_password_key.is_some() { |
|
|
|
PasswordOrOtpData { |
|
|
|
master_password_hash: reset_request.master_password_hash, |
|
|
|
otp: reset_request.otp, |
|
|
@ -3349,7 +3353,7 @@ async fn put_reset_password_enrollment( |
|
|
|
.await?; |
|
|
|
} |
|
|
|
|
|
|
|
member.reset_password_key = reset_request.reset_password_key; |
|
|
|
member.reset_password_key = reset_password_key; |
|
|
|
member.save(&mut conn).await?; |
|
|
|
|
|
|
|
let log_id = if member.reset_password_key.is_some() { |
|
|
|