mirror of
https://github.com/dani-garcia/vaultwarden.git
synced 2025-09-13 12:05:58 +03:00
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.
This commit is contained in:
@@ -3334,13 +3334,17 @@ async fn put_reset_password_enrollment(
|
|||||||
|
|
||||||
let reset_request = data.into_inner();
|
let reset_request = data.into_inner();
|
||||||
|
|
||||||
if reset_request.reset_password_key.is_none()
|
let reset_password_key = match reset_request.reset_password_key {
|
||||||
&& OrgPolicy::org_is_reset_password_auto_enroll(&org_id, &mut conn).await
|
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");
|
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 {
|
PasswordOrOtpData {
|
||||||
master_password_hash: reset_request.master_password_hash,
|
master_password_hash: reset_request.master_password_hash,
|
||||||
otp: reset_request.otp,
|
otp: reset_request.otp,
|
||||||
@@ -3349,7 +3353,7 @@ async fn put_reset_password_enrollment(
|
|||||||
.await?;
|
.await?;
|
||||||
}
|
}
|
||||||
|
|
||||||
member.reset_password_key = reset_request.reset_password_key;
|
member.reset_password_key = reset_password_key;
|
||||||
member.save(&mut conn).await?;
|
member.save(&mut conn).await?;
|
||||||
|
|
||||||
let log_id = if member.reset_password_key.is_some() {
|
let log_id = if member.reset_password_key.is_some() {
|
||||||
|
Reference in New Issue
Block a user