mirror of
				https://github.com/dani-garcia/vaultwarden.git
				synced 2025-10-28 00:40:01 +02:00 
			
		
		
		
	Track favorites on a per-user basis
Currently, favorites are tracked at the cipher level. For org-owned ciphers, this means that if one user sets it as a favorite, it automatically becomes a favorite for all other users that the cipher has been shared with.
This commit is contained in:
		| @@ -303,7 +303,6 @@ pub fn update_cipher_from_data( | ||||
|     type_data["PasswordHistory"] = data.PasswordHistory.clone().unwrap_or(Value::Null); | ||||
|     // TODO: ******* Backwards compat end ********** | ||||
|  | ||||
|     cipher.favorite = data.Favorite.unwrap_or(false); | ||||
|     cipher.name = data.Name; | ||||
|     cipher.notes = data.Notes; | ||||
|     cipher.fields = data.Fields.map(|f| f.to_string()); | ||||
| @@ -312,6 +311,7 @@ pub fn update_cipher_from_data( | ||||
|  | ||||
|     cipher.save(&conn)?; | ||||
|     cipher.move_to_folder(data.FolderId, &headers.user.uuid, &conn)?; | ||||
|     cipher.set_favorite(data.Favorite, &headers.user.uuid, &conn)?; | ||||
|  | ||||
|     if ut != UpdateType::None { | ||||
|         nt.send_cipher_update(ut, &cipher, &cipher.update_users_revision(&conn)); | ||||
| @@ -410,6 +410,11 @@ fn put_cipher(uuid: String, data: JsonUpcase<CipherData>, headers: Headers, conn | ||||
|         None => err!("Cipher doesn't exist"), | ||||
|     }; | ||||
|  | ||||
|     // TODO: Check if only the folder ID or favorite status is being changed. | ||||
|     // These are per-user properties that technically aren't part of the | ||||
|     // cipher itself, so the user shouldn't need write access to change these. | ||||
|     // Interestingly, upstream Bitwarden doesn't properly handle this either. | ||||
|  | ||||
|     if !cipher.is_write_accessible_to_user(&headers.user.uuid, &conn) { | ||||
|         err!("Cipher is not write accessible") | ||||
|     } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user