mirror of
				https://github.com/dani-garcia/vaultwarden.git
				synced 2025-10-30 17:58:19 +02:00 
			
		
		
		
	Fix another sync issue with native clients (#5259)
The `reprompt` value somehow sometimes has a value of `4`. This isn't a valid value, and doesn't cause issues with other clients, but the native clients are more strict. This commit fixes this by validating the value before storing and returning. Signed-off-by: BlackDex <black.dex@gmail.com>
This commit is contained in:
		
				
					committed by
					
						 GitHub
						GitHub
					
				
			
			
				
	
			
			
			
						parent
						
							d7adce97df
						
					
				
				
					commit
					c9860af11c
				
			| @@ -511,7 +511,7 @@ pub async fn update_cipher_from_data( | ||||
|     cipher.fields = data.fields.map(|f| _clean_cipher_data(f).to_string()); | ||||
|     cipher.data = type_data.to_string(); | ||||
|     cipher.password_history = data.password_history.map(|f| f.to_string()); | ||||
|     cipher.reprompt = data.reprompt; | ||||
|     cipher.reprompt = data.reprompt.filter(|r| *r == RepromptType::None as i32 || *r == RepromptType::Password as i32); | ||||
|  | ||||
|     cipher.save(conn).await?; | ||||
|     cipher.move_to_folder(data.folder_id, &headers.user.uuid, conn).await?; | ||||
|   | ||||
| @@ -46,10 +46,9 @@ db_object! { | ||||
|     } | ||||
| } | ||||
|  | ||||
| #[allow(dead_code)] | ||||
| pub enum RepromptType { | ||||
|     None = 0, | ||||
|     Password = 1, // not currently used in server | ||||
|     Password = 1, | ||||
| } | ||||
|  | ||||
| /// Local methods | ||||
| @@ -296,7 +295,7 @@ impl Cipher { | ||||
|             "creationDate": format_date(&self.created_at), | ||||
|             "revisionDate": format_date(&self.updated_at), | ||||
|             "deletedDate": self.deleted_at.map_or(Value::Null, |d| Value::String(format_date(&d))), | ||||
|             "reprompt": self.reprompt.unwrap_or(RepromptType::None as i32), | ||||
|             "reprompt": self.reprompt.filter(|r| *r == RepromptType::None as i32 || *r == RepromptType::Password as i32).unwrap_or(RepromptType::None as i32), | ||||
|             "organizationId": self.organization_uuid, | ||||
|             "key": self.key, | ||||
|             "attachments": attachments_json, | ||||
|   | ||||
| @@ -18,7 +18,7 @@ mod user; | ||||
|  | ||||
| pub use self::attachment::Attachment; | ||||
| pub use self::auth_request::AuthRequest; | ||||
| pub use self::cipher::Cipher; | ||||
| pub use self::cipher::{Cipher, RepromptType}; | ||||
| pub use self::collection::{Collection, CollectionCipher, CollectionUser}; | ||||
| pub use self::device::{Device, DeviceType}; | ||||
| pub use self::emergency_access::{EmergencyAccess, EmergencyAccessStatus, EmergencyAccessType}; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user