|
|
@@ -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(())
|