Skip to content

Commit 9059437

Browse files
authored
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.
1 parent c84db0d commit 9059437

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

src/api/core/organizations.rs

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3334,13 +3334,17 @@ async fn put_reset_password_enrollment(
33343334

33353335
let reset_request = data.into_inner();
33363336

3337-
if reset_request.reset_password_key.is_none()
3338-
&& OrgPolicy::org_is_reset_password_auto_enroll(&org_id, &mut conn).await
3339-
{
3337+
let reset_password_key = match reset_request.reset_password_key {
3338+
None => None,
3339+
Some(ref key) if key.is_empty() => None,
3340+
Some(key) => Some(key),
3341+
};
3342+
3343+
if reset_password_key.is_none() && OrgPolicy::org_is_reset_password_auto_enroll(&org_id, &mut conn).await {
33403344
err!("Reset password can't be withdrawn due to an enterprise policy");
33413345
}
33423346

3343-
if reset_request.reset_password_key.is_some() {
3347+
if reset_password_key.is_some() {
33443348
PasswordOrOtpData {
33453349
master_password_hash: reset_request.master_password_hash,
33463350
otp: reset_request.otp,
@@ -3349,7 +3353,7 @@ async fn put_reset_password_enrollment(
33493353
.await?;
33503354
}
33513355

3352-
member.reset_password_key = reset_request.reset_password_key;
3356+
member.reset_password_key = reset_password_key;
33533357
member.save(&mut conn).await?;
33543358

33553359
let log_id = if member.reset_password_key.is_some() {

0 commit comments

Comments
 (0)