|
|
@ -1,3 +1,4 @@
|
|
|
|
|
|
|
|
use crate::local_user::check_email_verified;
|
|
|
|
use actix_web::web::{Data, Json};
|
|
|
|
use actix_web::web::{Data, Json};
|
|
|
|
use lemmy_api_common::{
|
|
|
|
use lemmy_api_common::{
|
|
|
|
context::LemmyContext,
|
|
|
|
context::LemmyContext,
|
|
|
@ -6,7 +7,7 @@ use lemmy_api_common::{
|
|
|
|
SuccessResponse,
|
|
|
|
SuccessResponse,
|
|
|
|
};
|
|
|
|
};
|
|
|
|
use lemmy_db_schema::source::password_reset_request::PasswordResetRequest;
|
|
|
|
use lemmy_db_schema::source::password_reset_request::PasswordResetRequest;
|
|
|
|
use lemmy_db_views::structs::LocalUserView;
|
|
|
|
use lemmy_db_views::structs::{LocalUserView, SiteView};
|
|
|
|
use lemmy_utils::error::{LemmyErrorExt, LemmyErrorType, LemmyResult};
|
|
|
|
use lemmy_utils::error::{LemmyErrorExt, LemmyErrorType, LemmyResult};
|
|
|
|
|
|
|
|
|
|
|
|
#[tracing::instrument(skip(context))]
|
|
|
|
#[tracing::instrument(skip(context))]
|
|
|
@ -29,6 +30,8 @@ pub async fn reset_password(
|
|
|
|
if recent_resets_count >= 3 {
|
|
|
|
if recent_resets_count >= 3 {
|
|
|
|
Err(LemmyErrorType::PasswordResetLimitReached)?
|
|
|
|
Err(LemmyErrorType::PasswordResetLimitReached)?
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
let site_view = SiteView::read_local(&mut context.pool()).await?;
|
|
|
|
|
|
|
|
check_email_verified(&local_user_view, &site_view)?;
|
|
|
|
|
|
|
|
|
|
|
|
// Email the pure token to the user.
|
|
|
|
// Email the pure token to the user.
|
|
|
|
send_password_reset_email(&local_user_view, &mut context.pool(), context.settings()).await?;
|
|
|
|
send_password_reset_email(&local_user_view, &mut context.pool(), context.settings()).await?;
|
|
|
|