| 
						
						
							
								
							
						
						
					 | 
					@ -129,8 +129,6 @@ fn update_cipher_from_data(cipher: &mut Cipher, data: CipherData, headers: &Head | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        } | 
					 | 
					 | 
					        } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    } | 
					 | 
					 | 
					    } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    cipher.folder_uuid = data.folderId; | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    if let Some(org_id) = data.organizationId { | 
					 | 
					 | 
					    if let Some(org_id) = data.organizationId { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        match UserOrganization::find_by_user_and_org(&headers.user.uuid, &org_id, &conn) { | 
					 | 
					 | 
					        match UserOrganization::find_by_user_and_org(&headers.user.uuid, &org_id, &conn) { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            None => err!("You don't have permission to add item to organization"), | 
					 | 
					 | 
					            None => err!("You don't have permission to add item to organization"), | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -142,6 +140,13 @@ fn update_cipher_from_data(cipher: &mut Cipher, data: CipherData, headers: &Head | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        } | 
					 | 
					 | 
					        } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    } | 
					 | 
					 | 
					    } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					    let uppercase_fields = data.fields.map(|f| { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        let mut value = json!({}); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        // Copy every field object and change the names to the correct case
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        copy_values(&f, &mut value); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        value | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					    }); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    // TODO: ******* Backwards compat start **********
 | 
					 | 
					 | 
					    // TODO: ******* Backwards compat start **********
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    // To remove backwards compatibility, just create an empty values object,
 | 
					 | 
					 | 
					    // To remove backwards compatibility, just create an empty values object,
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    // and remove the compat code from cipher::to_json
 | 
					 | 
					 | 
					    // and remove the compat code from cipher::to_json
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -150,29 +155,9 @@ fn update_cipher_from_data(cipher: &mut Cipher, data: CipherData, headers: &Head | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        "Notes": data.notes | 
					 | 
					 | 
					        "Notes": data.notes | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    }); | 
					 | 
					 | 
					    }); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					    if let Some(ref fields) = data.fields { | 
					 | 
					 | 
					    values["Fields"] = uppercase_fields.clone().unwrap_or(Value::Null); | 
				
			
			
				
				
			
		
	
		
		
			
				
					 | 
					 | 
					        values["Fields"] = Value::Array(fields.as_array().unwrap().iter().map(|f| { | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            let mut value = json!({}); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            // Copy every field object and change the names to the correct case
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            copy_values(&f, &mut value); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            value | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        }).collect()); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    } else { | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        values["Fields"] = Value::Null; | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    } | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					    // TODO: ******* Backwards compat end **********
 | 
					 | 
					 | 
					    // TODO: ******* Backwards compat end **********
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    if let notes @ Some(_) = data.notes { | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        cipher.notes = notes; | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    } | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    if let Some(fields) = data.fields { | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        use serde_json::to_string; | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        cipher.fields = to_string(&fields).ok(); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    } | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    let type_data_opt = match data.type_ { | 
					 | 
					 | 
					    let type_data_opt = match data.type_ { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        1 => data.login, | 
					 | 
					 | 
					        1 => data.login, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        2 => data.secureNote, | 
					 | 
					 | 
					        2 => data.secureNote, | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -188,8 +173,11 @@ 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 the type data and change the names to the correct case
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    copy_values(&type_data, &mut values); | 
					 | 
					 | 
					    copy_values(&type_data, &mut values); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    cipher.name = data.name; | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					    cipher.folder_uuid = data.folderId; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					    cipher.name = data.name; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					    cipher.notes = data.notes; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					    cipher.fields = uppercase_fields.map(|f| f.to_string()); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    cipher.data = values.to_string(); | 
					 | 
					 | 
					    cipher.data = values.to_string(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    Ok(()) | 
					 | 
					 | 
					    Ok(()) | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					
  |