vw_small

Hardened fork of Vaultwarden (https://github.com/dani-garcia/vaultwarden) with fewer features.
git clone https://git.philomathiclife.com/repos/vw_small
Log | Files | Refs | README

commit c3be1b4298206c084e397b4c0a3e2e840baf6d8e
parent 514a372bc85fd495d331f240e35377a8ebdfb3c4
Author: Miroslav Prasil <miroslav@prasil.info>
Date:   Tue,  1 May 2018 16:54:22 +0100

Fix FolderCipher creation, handle some errors

Diffstat:
Msrc/api/core/ciphers.rs | 8++++++--
Msrc/db/models/cipher.rs | 8++++----
Msrc/db/models/folder.rs | 4++--
3 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/src/api/core/ciphers.rs b/src/api/core/ciphers.rs @@ -174,7 +174,9 @@ fn update_cipher_from_data(cipher: &mut Cipher, data: CipherData, headers: &Head // Copy the type data and change the names to the correct case copy_values(&type_data, &mut values); - cipher.move_to_folder(data.folderId, &headers.user.uuid, &conn); + if cipher.move_to_folder(data.folderId, &headers.user.uuid, &conn).is_err() { + err!("Error saving the folder information") + } cipher.name = data.name; cipher.notes = data.notes; cipher.fields = uppercase_fields.map(|f| f.to_string()); @@ -429,7 +431,9 @@ fn move_cipher_selected(data: Json<Value>, headers: Headers, conn: DbConn) -> Em } // Move cipher - cipher.move_to_folder(folder_id.clone(), &headers.user.uuid, &conn); + if cipher.move_to_folder(folder_id.clone(), &headers.user.uuid, &conn).is_err() { + err!("Error saving the folder information") + } cipher.save(&conn); } diff --git a/src/db/models/cipher.rs b/src/db/models/cipher.rs @@ -163,10 +163,10 @@ impl Cipher { current_folder.delete(&conn).or(Err("Failed removing old folder mapping")) }, None => Ok(()) // Weird, but nothing to do - }; - - FolderCipher::new(&new_folder, &self.uuid) - .save(&conn).or(Err("Couldn't save folder setting")) + }.and_then( + |()| FolderCipher::new(&new_folder, &self.uuid) + .save(&conn).or(Err("Couldn't save folder setting")) + ) } }, None => { diff --git a/src/db/models/folder.rs b/src/db/models/folder.rs @@ -55,10 +55,10 @@ impl Folder { } impl FolderCipher { - pub fn new(cipher_uuid: &str, folder_uuid: &str) -> Self { + pub fn new(folder_uuid: &str, cipher_uuid: &str) -> Self { Self { - cipher_uuid: cipher_uuid.to_string(), folder_uuid: folder_uuid.to_string(), + cipher_uuid: cipher_uuid.to_string(), } } }