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 0e095a9fa4c8417ba308cbd0de974278654a65e1
parent 2f6aa3c36381f802bddf97fbb988020a302e7a2b
Author: Kumar Ankur <kankur@mobileiron.com>
Date:   Wed,  1 Aug 2018 13:50:52 +0530

change to reuse the logic for POST in PUT as well

Diffstat:
Msrc/api/core/ciphers.rs | 49+------------------------------------------------
1 file changed, 1 insertion(+), 48 deletions(-)

diff --git a/src/api/core/ciphers.rs b/src/api/core/ciphers.rs @@ -537,54 +537,7 @@ fn move_cipher_selected(data: JsonUpcase<Value>, headers: Headers, conn: DbConn) #[put("/ciphers/move", data = "<data>")] fn move_cipher_selected_put(data: JsonUpcase<Value>, headers: Headers, conn: DbConn) -> EmptyResult { - let data = data.into_inner().data; - - let folder_id = match data.get("FolderId") { - Some(folder_id) => { - match folder_id.as_str() { - Some(folder_id) => { - match Folder::find_by_uuid(folder_id, &conn) { - Some(folder) => { - if folder.user_uuid != headers.user.uuid { - err!("Folder is not owned by user") - } - Some(folder.uuid) - } - None => err!("Folder doesn't exist") - } - } - None => err!("Folder id provided in wrong format") - } - } - None => None - }; - - let uuids = match data.get("Ids") { - Some(ids) => match ids.as_array() { - Some(ids) => ids.iter().filter_map(|uuid| { uuid.as_str() }), - None => err!("Posted ids field is not an array") - }, - None => err!("Request missing ids field") - }; - - for uuid in uuids { - let mut cipher = match Cipher::find_by_uuid(uuid, &conn) { - Some(cipher) => cipher, - None => err!("Cipher doesn't exist") - }; - - if !cipher.is_accessible_to_user(&headers.user.uuid, &conn) { - err!("Cipher is not accessible by user") - } - - // Move cipher - if cipher.move_to_folder(folder_id.clone(), &headers.user.uuid, &conn).is_err() { - err!("Error saving the folder information") - } - cipher.save(&conn); - } - - Ok(()) + move_cipher_selected(data, headers, conn) } #[post("/ciphers/purge", data = "<data>")]