mirror of
https://github.com/dani-garcia/vaultwarden
synced 2024-12-16 18:43:45 +01: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:
parent
0e53f58288
commit
ecfebaf3c7
1 changed files with 10 additions and 9 deletions
|
@ -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(())
|
||||
|
|
Loading…
Reference in a new issue