|
|
@ -967,18 +967,18 @@ fn delete_cipher_selected_put_admin(data: JsonUpcase<Value>, headers: Headers, c |
|
|
|
} |
|
|
|
|
|
|
|
#[put("/ciphers/<uuid>/restore")] |
|
|
|
fn restore_cipher_put(uuid: String, headers: Headers, conn: DbConn, nt: Notify) -> EmptyResult { |
|
|
|
fn restore_cipher_put(uuid: String, headers: Headers, conn: DbConn, nt: Notify) -> JsonResult { |
|
|
|
_restore_cipher_by_uuid(&uuid, &headers, &conn, &nt) |
|
|
|
} |
|
|
|
|
|
|
|
#[put("/ciphers/<uuid>/restore-admin")] |
|
|
|
fn restore_cipher_put_admin(uuid: String, headers: Headers, conn: DbConn, nt: Notify) -> EmptyResult { |
|
|
|
fn restore_cipher_put_admin(uuid: String, headers: Headers, conn: DbConn, nt: Notify) -> JsonResult { |
|
|
|
_restore_cipher_by_uuid(&uuid, &headers, &conn, &nt) |
|
|
|
} |
|
|
|
|
|
|
|
#[put("/ciphers/restore", data = "<data>")] |
|
|
|
fn restore_cipher_selected(data: JsonUpcase<Value>, headers: Headers, conn: DbConn, nt: Notify) -> EmptyResult { |
|
|
|
_restore_multiple_ciphers(data, headers, conn, nt) |
|
|
|
fn restore_cipher_selected(data: JsonUpcase<Value>, headers: Headers, conn: DbConn, nt: Notify) -> JsonResult { |
|
|
|
_restore_multiple_ciphers(data, &headers, &conn, &nt) |
|
|
|
} |
|
|
|
|
|
|
|
#[derive(Deserialize)] |
|
|
@ -1134,7 +1134,7 @@ fn _delete_multiple_ciphers(data: JsonUpcase<Value>, headers: Headers, conn: DbC |
|
|
|
Ok(()) |
|
|
|
} |
|
|
|
|
|
|
|
fn _restore_cipher_by_uuid(uuid: &str, headers: &Headers, conn: &DbConn, nt: &Notify) -> EmptyResult { |
|
|
|
fn _restore_cipher_by_uuid(uuid: &str, headers: &Headers, conn: &DbConn, nt: &Notify) -> JsonResult { |
|
|
|
let mut cipher = match Cipher::find_by_uuid(&uuid, &conn) { |
|
|
|
Some(cipher) => cipher, |
|
|
|
None => err!("Cipher doesn't exist"), |
|
|
@ -1148,10 +1148,10 @@ fn _restore_cipher_by_uuid(uuid: &str, headers: &Headers, conn: &DbConn, nt: &No |
|
|
|
cipher.save(&conn)?; |
|
|
|
|
|
|
|
nt.send_cipher_update(UpdateType::CipherUpdate, &cipher, &cipher.update_users_revision(&conn)); |
|
|
|
Ok(()) |
|
|
|
Ok(Json(cipher.to_json(&headers.host, &headers.user.uuid, &conn))) |
|
|
|
} |
|
|
|
|
|
|
|
fn _restore_multiple_ciphers(data: JsonUpcase<Value>, headers: Headers, conn: DbConn, nt: Notify) -> EmptyResult { |
|
|
|
fn _restore_multiple_ciphers(data: JsonUpcase<Value>, headers: &Headers, conn: &DbConn, nt: &Notify) -> JsonResult { |
|
|
|
let data: Value = data.into_inner().data; |
|
|
|
|
|
|
|
let uuids = match data.get("Ids") { |
|
|
@ -1162,13 +1162,19 @@ fn _restore_multiple_ciphers(data: JsonUpcase<Value>, headers: Headers, conn: Db |
|
|
|
None => err!("Request missing ids field"), |
|
|
|
}; |
|
|
|
|
|
|
|
let mut ciphers: Vec<Value> = Vec::new(); |
|
|
|
for uuid in uuids { |
|
|
|
if let error @ Err(_) = _restore_cipher_by_uuid(uuid, &headers, &conn, &nt) { |
|
|
|
return error; |
|
|
|
}; |
|
|
|
match _restore_cipher_by_uuid(uuid, headers, conn, nt) { |
|
|
|
Ok(json) => ciphers.push(json.into_inner()), |
|
|
|
err => return err |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
Ok(()) |
|
|
|
Ok(Json(json!({ |
|
|
|
"Data": ciphers, |
|
|
|
"Object": "list", |
|
|
|
"ContinuationToken": null |
|
|
|
}))) |
|
|
|
} |
|
|
|
|
|
|
|
fn _delete_cipher_attachment_by_id( |
|
|
|