vw_small

Hardened fork of Vaultwarden (https://github.com/dani-garcia/vaultwarden) with fewer features.
git clone https://git.philomathiclife.com/repos/vw_small
Log | Files | Refs | README

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:
Msrc/api/core/organizations.rs | 14+++++++-------
Msrc/api/core/two_factor/mod.rs | 8+++++---
Msrc/error.rs | 2+-
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 ]},