app: Fix password reset redirection (#513)

* Fix password reset redirection
* Add password reset enable flag
This commit is contained in:
Austin Alvarado 2023-03-30 09:47:41 -06:00 committed by GitHub
parent 88a9f8a97b
commit c4b8621e2a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 16 additions and 2 deletions

View File

@ -177,7 +177,13 @@ impl App {
Some(AppRoute::StartResetPassword | AppRoute::FinishResetPassword { token: _ }), Some(AppRoute::StartResetPassword | AppRoute::FinishResetPassword { token: _ }),
_, _,
_, _,
) if self.password_reset_enabled == Some(false) => Some(AppRoute::Login), ) => {
if self.password_reset_enabled == Some(false) {
Some(AppRoute::Login)
} else {
None
}
}
(None, _, _) | (_, None, _) => Some(AppRoute::Login), (None, _, _) | (_, None, _) => Some(AppRoute::Login),
// User is logged in, a URL was given, don't redirect. // User is logged in, a URL was given, don't redirect.
(_, Some(_), Some(_)) => None, (_, Some(_), Some(_)) => None,

View File

@ -18,7 +18,7 @@ use hmac::Hmac;
use jwt::{SignWithKey, VerifyWithKey}; use jwt::{SignWithKey, VerifyWithKey};
use sha2::Sha512; use sha2::Sha512;
use time::ext::NumericalDuration; use time::ext::NumericalDuration;
use tracing::{debug, instrument, warn}; use tracing::{debug, info, instrument, warn};
use lldap_auth::{login, password_reset, registration, JWTClaims}; use lldap_auth::{login, password_reset, registration, JWTClaims};
@ -183,6 +183,7 @@ where
.await .await
{ {
warn!("Error sending email: {:#?}", e); warn!("Error sending email: {:#?}", e);
info!("Reset token: {}", token);
return Err(TcpError::InternalServerError(format!( return Err(TcpError::InternalServerError(format!(
"Could not send email: {}", "Could not send email: {}",
e e

View File

@ -132,6 +132,10 @@ pub enum SmtpEncryption {
#[derive(Debug, Parser, Clone)] #[derive(Debug, Parser, Clone)]
#[clap(next_help_heading = Some("SMTP"))] #[clap(next_help_heading = Some("SMTP"))]
pub struct SmtpOpts { pub struct SmtpOpts {
/// Enable password reset.
#[clap(long, env = "LLDAP_SMTP_OPTIONS__ENABLE_PASSWORD_RESET")]
pub smtp_enable_password_reset: Option<bool>,
/// Sender email address. /// Sender email address.
#[clap(long, env = "LLDAP_SMTP_OPTIONS__FROM")] #[clap(long, env = "LLDAP_SMTP_OPTIONS__FROM")]
pub smtp_from: Option<Mailbox>, pub smtp_from: Option<Mailbox>,

View File

@ -276,6 +276,9 @@ impl ConfigOverrider for SmtpOpts {
if let Some(tls_required) = self.smtp_tls_required { if let Some(tls_required) = self.smtp_tls_required {
config.smtp_options.tls_required = Some(tls_required); config.smtp_options.tls_required = Some(tls_required);
} }
if let Some(enable_password_reset) = self.smtp_enable_password_reset {
config.smtp_options.enable_password_reset = enable_password_reset;
}
} }
} }