Browse Source
			
			
			Merge pull request #1688 from jjlin/config-sends-allowed
			
				Add `sends_allowed` config setting
			
			
				pull/1696/head
			
			
		 
		
			
				
					
						
						Daniel García
					
					5 years ago
					
						
							committed by
							
								
								GitHub
							
						 
					
				 
				
			 
		 
		
			
				
					
					No known key found for this signature in database
					
						
							GPG Key ID: 4AEE18F83AFDEB23
						
					
				
			
		
		
		
	
		
			
				 3 changed files with 
13 additions and 
1 deletions
			 
			
		 
		
			
				- 
					
					
					 
					.env.template
				
 
			
				- 
					
					
					 
					src/api/core/sends.rs
				
 
			
				- 
					
					
					 
					src/config.rs
				
 
			
		
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
			
				
					| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -56,6 +56,11 @@ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					# WEBSOCKET_ADDRESS=0.0.0.0 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					# WEBSOCKET_PORT=3012 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					## Controls whether users are allowed to create Bitwarden Sends. | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					## This setting applies globally to all users. | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					## To control this on a per-org basis instead, use the "Disable Send" org policy. | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					# SENDS_ALLOWED=true | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					## Job scheduler settings | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					## | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					## Job schedules use a cron-like syntax (as parsed by https://crates.io/crates/cron), | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  | 
				
			
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
			
				
					| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -51,10 +51,13 @@ pub struct SendData { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					/// modify existing ones, but is allowed to delete them.
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					///
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					/// Ref: https://bitwarden.com/help/article/policies/#disable-send
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					///
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					/// There is also a Vaultwarden-specific `sends_allowed` config setting that
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					/// controls this policy globally.
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					fn enforce_disable_send_policy(headers: &Headers, conn: &DbConn) -> EmptyResult { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    let user_uuid = &headers.user.uuid; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    let policy_type = OrgPolicyType::DisableSend; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    if OrgPolicy::is_applicable_to_user(user_uuid, policy_type, conn) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    if !CONFIG.sends_allowed() || OrgPolicy::is_applicable_to_user(user_uuid, policy_type, conn) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        err!("Due to an Enterprise Policy, you are only able to delete an existing Send.") | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    Ok(()) | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  | 
				
			
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
			
				
					| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -342,6 +342,10 @@ make_config! { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        /// Enable web vault
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        web_vault_enabled:      bool,   false,  def,    true; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        /// Allow Sends |> Controls whether users are allowed to create Bitwarden Sends.
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        /// This setting applies globally to all users. To control this on a per-org basis instead, use the "Disable Send" org policy.
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        sends_allowed:          bool,   true,   def,    true; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        /// HIBP Api Key |> HaveIBeenPwned API Key, request it here: https://haveibeenpwned.com/API/Key
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        hibp_api_key:           Pass,   true,   option; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |