Browse Source

make error toast display detailed message
replace invite accept error message with the one from upstream
check if config mail is enabled

Olivier Martin 4 years ago
parent
commit
1db37bf3d0
3 changed files with 13 additions and 11 deletions
  1. 7 7
      src/api/core/organizations.rs
  2. 5 3
      src/api/core/two_factor/mod.rs
  3. 1 1
      src/error.rs

+ 7 - 7
src/api/core/organizations.rs

@@ -656,10 +656,8 @@ fn accept_invite(_org_id: String, _org_user_id: String, data: JsonUpcase<AcceptD
                 };
 
                 if org_twofactor_policy_enabled && user_twofactor_disabled {
-                    let org = Organization::find_by_uuid(&org, &conn).unwrap();
-                    // you haven't joined yet, but mail explains why you were unable to accept invitation
-                    mail::send_2fa_removed_from_org(&claims.email, &org.name)?;
-                    err!("Organization policy requires that you enable two Two-step Login begin joining.")
+
+                    err!("You cannot join this organization until you enable two-step login on your user account.")
                 }
 
                 user_org.status = UserOrgStatus::Accepted as i32;
@@ -1021,10 +1019,12 @@ fn put_policy(org_id: String, pol_type: i32, data: Json<PolicyData>, _headers: A
 
             if user_twofactor_disabled && user_org.atype < UserOrgType::Admin {
 
-                let org = Organization::find_by_uuid(&user_org.org_uuid, &conn).unwrap();
-                let user = User::find_by_uuid(&user_org.user_uuid, &conn).unwrap();
+                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();
 
-                mail::send_2fa_removed_from_org(&user.email, &org.name)?;
+                    mail::send_2fa_removed_from_org(&user.email, &org.name)?;
+                }
                 user_org.delete(&conn)?;
             }
         }        

+ 5 - 3
src/api/core/two_factor/mod.rs

@@ -11,7 +11,7 @@ use crate::{
         models::*,
         DbConn,
     },
-    mail,
+    mail, CONFIG,
 };
 
 pub mod authenticator;
@@ -144,9 +144,11 @@ fn disable_twofactor(data: JsonUpcase<DisableTwoFactorData>, headers: Headers, c
         for user_org in org_list.into_iter() {
 
             if user_org.atype < UserOrgType::Admin {
-                let org = Organization::find_by_uuid(&user_org.org_uuid, &conn).unwrap();
 
-                mail::send_2fa_removed_from_org(&user.email, &org.name)?;
+                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)?;
+                }
                 user_org.delete(&conn)?;
             }
         }

+ 1 - 1
src/error.rs

@@ -166,7 +166,7 @@ fn _serialize(e: &impl serde::Serialize, _msg: &str) -> String {
 
 fn _api_error(_: &impl std::any::Any, msg: &str) -> String {
     let json = json!({
-        "Message": "",
+        "Message": msg,
         "error": "",
         "error_description": "",
         "ValidationErrors": {"": [ msg ]},