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:
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>")]