mirror of
https://github.com/dani-garcia/vaultwarden
synced 2024-11-22 03:43:06 +00:00
Fix importing Bitwarden exports (#4030)
When importing Bitwarden JSON exports, these would fail because the last modification date was also imported and caused our out-off-sync check to kick-in. This PR fixes this by checking if we are doing an import, and skip this check. Fixes #4005
This commit is contained in:
parent
512b3b9b7c
commit
cec1e87679
1 changed files with 10 additions and 7 deletions
|
@ -359,14 +359,17 @@ pub async fn update_cipher_from_data(
|
||||||
enforce_personal_ownership_policy(Some(&data), headers, conn).await?;
|
enforce_personal_ownership_policy(Some(&data), headers, conn).await?;
|
||||||
|
|
||||||
// Check that the client isn't updating an existing cipher with stale data.
|
// Check that the client isn't updating an existing cipher with stale data.
|
||||||
if let Some(dt) = data.LastKnownRevisionDate {
|
// And only perform this check when not importing ciphers, else the date/time check will fail.
|
||||||
match NaiveDateTime::parse_from_str(&dt, "%+") {
|
if ut != UpdateType::None {
|
||||||
// ISO 8601 format
|
if let Some(dt) = data.LastKnownRevisionDate {
|
||||||
Err(err) => warn!("Error parsing LastKnownRevisionDate '{}': {}", dt, err),
|
match NaiveDateTime::parse_from_str(&dt, "%+") {
|
||||||
Ok(dt) if cipher.updated_at.signed_duration_since(dt).num_seconds() > 1 => {
|
// ISO 8601 format
|
||||||
err!("The client copy of this cipher is out of date. Resync the client and try again.")
|
Err(err) => warn!("Error parsing LastKnownRevisionDate '{}': {}", dt, err),
|
||||||
|
Ok(dt) if cipher.updated_at.signed_duration_since(dt).num_seconds() > 1 => {
|
||||||
|
err!("The client copy of this cipher is out of date. Resync the client and try again.")
|
||||||
|
}
|
||||||
|
Ok(_) => (),
|
||||||
}
|
}
|
||||||
Ok(_) => (),
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue