mirror of
https://github.com/dani-garcia/vaultwarden.git
synced 2024-11-09 15:20:58 +00: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
@ -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 {
|
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 {
|
let user_org = match UserOrganization::find_by_uuid(user_org, conn).await {
|
||||||
Some(user_org) => user_org,
|
Some(user_org) => user_org,
|
||||||
None => err!("The user hasn't been invited to the organization."),
|
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."),
|
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 {
|
let org_name = match Organization::find_by_uuid(org_id, conn).await {
|
||||||
Some(org) => org.name,
|
Some(org) => org.name,
|
||||||
None => err!("Error looking up organization."),
|
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()),
|
Some(invited_by_email.to_string()),
|
||||||
)
|
)
|
||||||
.await?;
|
.await?;
|
||||||
} else {
|
} else if user.password_hash.is_empty() {
|
||||||
let invitation = Invitation::new(&user.email);
|
let invitation = Invitation::new(&user.email);
|
||||||
invitation.save(conn).await?;
|
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(())
|
Ok(())
|
||||||
|
Loading…
Reference in New Issue
Block a user