mirror of
https://github.com/mCaptcha/mCaptcha.git
synced 2025-02-18 17:39:46 +03:00
feat: migrate get password to use db_* interface
This commit is contained in:
parent
39ee2ad221
commit
96995bc068
1 changed files with 7 additions and 20 deletions
|
@ -32,30 +32,17 @@ pub async fn delete_account(
|
||||||
data: AppData,
|
data: AppData,
|
||||||
) -> ServiceResult<impl Responder> {
|
) -> ServiceResult<impl Responder> {
|
||||||
use argon2_creds::Config;
|
use argon2_creds::Config;
|
||||||
use sqlx::Error::RowNotFound;
|
|
||||||
|
|
||||||
let username = id.identity().unwrap();
|
let username = id.identity().unwrap();
|
||||||
|
|
||||||
let rec = sqlx::query_as!(
|
let hash = data.dblib.get_password(&db_core::Login::Username(&username)).await?;
|
||||||
Password,
|
|
||||||
r#"SELECT password FROM mcaptcha_users WHERE name = ($1)"#,
|
|
||||||
&username,
|
|
||||||
)
|
|
||||||
.fetch_one(&data.db)
|
|
||||||
.await;
|
|
||||||
|
|
||||||
match rec {
|
if Config::verify(&hash.hash, &payload.password)? {
|
||||||
Ok(s) => {
|
runners::delete_user(&username, &data).await?;
|
||||||
if Config::verify(&s.password, &payload.password)? {
|
id.forget();
|
||||||
runners::delete_user(&username, &data).await?;
|
Ok(HttpResponse::Ok())
|
||||||
id.forget();
|
} else {
|
||||||
Ok(HttpResponse::Ok())
|
Err(ServiceError::WrongPassword)
|
||||||
} else {
|
|
||||||
Err(ServiceError::WrongPassword)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Err(RowNotFound) => Err(ServiceError::AccountNotFound),
|
|
||||||
Err(_) => Err(ServiceError::InternalServerError),
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue