Fix Yubikeys deleted on error

This commit is contained in:
Daniel García 2019-02-16 21:30:55 +01:00
parent 71da961ecd
commit 93805a5d7b
No known key found for this signature in database
GPG Key ID: FC8A7D14C3CD543A
1 changed files with 6 additions and 11 deletions

View File

@ -573,11 +573,10 @@ fn activate_yubikey(data: JsonUpcase<EnableYubikeyData>, headers: Headers, conn:
} }
// Check if we already have some data // Check if we already have some data
let yubikey_data = TwoFactor::find_by_user_and_type(&user.uuid, TwoFactorType::YubiKey as i32, &conn); let mut yubikey_data = match TwoFactor::find_by_user_and_type(&user.uuid, TwoFactorType::YubiKey as i32, &conn) {
Some(data) => data,
if let Some(yubikey_data) = yubikey_data { None => TwoFactor::new(user.uuid.clone(), TwoFactorType::YubiKey, String::new()),
yubikey_data.delete(&conn)?; };
}
let yubikeys = parse_yubikeys(&data); let yubikeys = parse_yubikeys(&data);
@ -605,12 +604,8 @@ fn activate_yubikey(data: JsonUpcase<EnableYubikeyData>, headers: Headers, conn:
Nfc: data.Nfc, Nfc: data.Nfc,
}; };
let yubikey_registration = TwoFactor::new( yubikey_data.data = serde_json::to_string(&yubikey_metadata).unwrap();
user.uuid.clone(), yubikey_data.save(&conn)?;
TwoFactorType::YubiKey,
serde_json::to_string(&yubikey_metadata).unwrap(),
);
yubikey_registration.save(&conn)?;
_generate_recover_code(&mut user, &conn); _generate_recover_code(&mut user, &conn);