mirror of
https://github.com/perstarkse/minne.git
synced 2026-01-16 15:06:37 +01:00
fix: move ownership into auth fn
This commit is contained in:
@@ -122,8 +122,8 @@ impl User {
|
||||
}
|
||||
|
||||
pub async fn authenticate(
|
||||
email: String,
|
||||
password: String,
|
||||
email: &str,
|
||||
password: &str,
|
||||
db: &SurrealDbClient,
|
||||
) -> Result<Self, AppError> {
|
||||
let user: Option<User> = db
|
||||
@@ -133,8 +133,8 @@ impl User {
|
||||
WHERE email = $email
|
||||
AND crypto::argon2::compare(password, $password)",
|
||||
)
|
||||
.bind(("email", email))
|
||||
.bind(("password", password))
|
||||
.bind(("email", email.to_owned()))
|
||||
.bind(("password", password.to_owned()))
|
||||
.await?
|
||||
.take(0)?;
|
||||
user.ok_or(AppError::Auth("User failed to authenticate".into()))
|
||||
|
||||
@@ -5,12 +5,7 @@ use async_openai::{
|
||||
CreateChatCompletionRequest, CreateChatCompletionRequestArgs, CreateChatCompletionResponse,
|
||||
ResponseFormat, ResponseFormatJsonSchema,
|
||||
},
|
||||
MessageFiles,
|
||||
};
|
||||
use serde::Deserialize;
|
||||
use serde_json::{json, Value};
|
||||
use tracing::debug;
|
||||
|
||||
use common::{
|
||||
error::AppError,
|
||||
storage::{
|
||||
@@ -21,6 +16,8 @@ use common::{
|
||||
},
|
||||
},
|
||||
};
|
||||
use serde::Deserialize;
|
||||
use serde_json::{json, Value};
|
||||
|
||||
use crate::retrieve_entities;
|
||||
|
||||
|
||||
@@ -127,7 +127,7 @@ pub async fn change_password(
|
||||
Form(form): Form<NewPasswordForm>,
|
||||
) -> Result<impl IntoResponse, HtmlError> {
|
||||
// Authenticate to make sure the password matches
|
||||
let authenticated_user = User::authenticate(user.email, form.old_password, &state.db).await?;
|
||||
let authenticated_user = User::authenticate(&user.email, &form.old_password, &state.db).await?;
|
||||
|
||||
User::patch_password(&authenticated_user.email, &form.new_password, &state.db).await?;
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ pub async fn authenticate_user(
|
||||
auth: AuthSessionType,
|
||||
Form(form): Form<SignupParams>,
|
||||
) -> Result<impl IntoResponse, HtmlError> {
|
||||
let user = match User::authenticate(form.email, form.password, &state.db).await {
|
||||
let user = match User::authenticate(&form.email, &form.password, &state.db).await {
|
||||
Ok(user) => user,
|
||||
Err(_) => {
|
||||
return Ok(Html("<p>Incorrect email or password </p>").into_response());
|
||||
|
||||
Reference in New Issue
Block a user