diff --git a/src/api/core/organizations.rs b/src/api/core/organizations.rs index cb53e204..54ec92eb 100644 --- a/src/api/core/organizations.rs +++ b/src/api/core/organizations.rs @@ -649,13 +649,13 @@ fn accept_invite(_org_id: String, _org_user_id: String, data: JsonUpcase p.enabled, - None => false, - }; + let org_twofactor_policy_enabled = + match OrgPolicy::find_by_org_and_type(&user_org.org_uuid, policy, &conn) { + Some(p) => p.enabled, + None => false, + }; if org_twofactor_policy_enabled && user_twofactor_disabled { - err!("You cannot join this organization until you enable two-step login on your user account.") } @@ -1010,16 +1010,14 @@ fn put_policy( Some(pt) => pt, None => err!("Invalid policy type"), }; - - if pol_type_enum == OrgPolicyType::TwoFactorAuthentication && data.enabled { + if pol_type_enum == OrgPolicyType::TwoFactorAuthentication && data.enabled { let org_list = UserOrganization::find_by_org(&org_id, &conn); for user_org in org_list.into_iter() { let user_twofactor_disabled = TwoFactor::find_by_user(&user_org.user_uuid, &conn).is_empty(); if user_twofactor_disabled && user_org.atype < UserOrgType::Admin { - if CONFIG.mail_enabled() { let org = Organization::find_by_uuid(&user_org.org_uuid, &conn).unwrap(); let user = User::find_by_uuid(&user_org.user_uuid, &conn).unwrap(); @@ -1028,7 +1026,7 @@ fn put_policy( } user_org.delete(&conn)?; } - } + } } let mut policy = match OrgPolicy::find_by_org_and_type(&org_id, pol_type, &conn) { diff --git a/src/api/core/two_factor/mod.rs b/src/api/core/two_factor/mod.rs index a51eb2c3..fb0ee593 100644 --- a/src/api/core/two_factor/mod.rs +++ b/src/api/core/two_factor/mod.rs @@ -7,10 +7,7 @@ use crate::{ api::{JsonResult, JsonUpcase, NumberOrString, PasswordData}, auth::Headers, crypto, - db::{ - models::*, - DbConn, - }, + db::{models::*, DbConn}, mail, CONFIG, }; @@ -136,9 +133,7 @@ fn disable_twofactor(data: JsonUpcase, headers: Headers, c let org_list = UserOrganization::find_by_user_and_policy(&user.uuid, policy_type, &conn); for user_org in org_list.into_iter() { - if user_org.atype < UserOrgType::Admin { - if CONFIG.mail_enabled() { let org = Organization::find_by_uuid(&user_org.org_uuid, &conn).unwrap(); mail::send_2fa_removed_from_org(&user.email, &org.name)?; diff --git a/src/mail.rs b/src/mail.rs index e8583468..66c8812e 100644 --- a/src/mail.rs +++ b/src/mail.rs @@ -181,11 +181,7 @@ pub fn send_welcome_must_verify(address: &str, uuid: &str) -> EmptyResult { send_email(address, &subject, body_html, body_text) } -pub fn send_2fa_removed_from_org( - address: &str, - org_name: &str, -) -> EmptyResult { - +pub fn send_2fa_removed_from_org(address: &str, org_name: &str) -> EmptyResult { let (subject, body_html, body_text) = get_text( "email/send_2fa_removed_from_org", json!({