commit 1db37bf3d06543c890612ff88193813035763034
parent d75a80bd2dbe21e5a1eb2b0a6b18a9422441e071
Author: Olivier Martin <olivier.martin@illogika.com>
Date: Mon, 12 Apr 2021 21:54:57 -0400
make error toast display detailed message
replace invite accept error message with the one from upstream
check if config mail is enabled
Diffstat:
3 files changed, 13 insertions(+), 11 deletions(-)
diff --git a/src/api/core/organizations.rs b/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)?;
}
}
diff --git a/src/api/core/two_factor/mod.rs b/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)?;
}
}
diff --git a/src/error.rs b/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 ]},