mirror of
				https://github.com/dani-garcia/vaultwarden.git
				synced 2025-10-31 10:18:19 +02:00 
			
		
		
		
	allow re-invitations of existing users (#4768)
* allow re-invitations of existing users * auto-accept existing user if mail is disabled Apply suggestions from code review Co-authored-by: Mathijs van Veluw <black.dex@gmail.com> --------- Co-authored-by: Mathijs van Veluw <black.dex@gmail.com>
This commit is contained in:
		| @@ -997,14 +997,6 @@ async fn reinvite_user(org_id: &str, user_org: &str, headers: AdminHeaders, mut | ||||
| } | ||||
|  | ||||
| async fn _reinvite_user(org_id: &str, user_org: &str, invited_by_email: &str, conn: &mut DbConn) -> EmptyResult { | ||||
|     if !CONFIG.invitations_allowed() { | ||||
|         err!("Invitations are not allowed.") | ||||
|     } | ||||
|  | ||||
|     if !CONFIG.mail_enabled() { | ||||
|         err!("SMTP is not configured.") | ||||
|     } | ||||
|  | ||||
|     let user_org = match UserOrganization::find_by_uuid(user_org, conn).await { | ||||
|         Some(user_org) => user_org, | ||||
|         None => err!("The user hasn't been invited to the organization."), | ||||
| @@ -1019,6 +1011,10 @@ async fn _reinvite_user(org_id: &str, user_org: &str, invited_by_email: &str, co | ||||
|         None => err!("User not found."), | ||||
|     }; | ||||
|  | ||||
|     if !CONFIG.invitations_allowed() && user.password_hash.is_empty() { | ||||
|         err!("Invitations are not allowed.") | ||||
|     } | ||||
|  | ||||
|     let org_name = match Organization::find_by_uuid(org_id, conn).await { | ||||
|         Some(org) => org.name, | ||||
|         None => err!("Error looking up organization."), | ||||
| @@ -1034,9 +1030,14 @@ async fn _reinvite_user(org_id: &str, user_org: &str, invited_by_email: &str, co | ||||
|             Some(invited_by_email.to_string()), | ||||
|         ) | ||||
|         .await?; | ||||
|     } else { | ||||
|     } else if user.password_hash.is_empty() { | ||||
|         let invitation = Invitation::new(&user.email); | ||||
|         invitation.save(conn).await?; | ||||
|     } else { | ||||
|         let _ = Invitation::take(&user.email, conn).await; | ||||
|         let mut user_org = user_org; | ||||
|         user_org.status = UserOrgStatus::Accepted as i32; | ||||
|         user_org.save(conn).await?; | ||||
|     } | ||||
|  | ||||
|     Ok(()) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user