diff --git a/src/server/auth.rs b/src/server/auth.rs index fee10f4..4d7107a 100644 --- a/src/server/auth.rs +++ b/src/server/auth.rs @@ -3,7 +3,7 @@ use diesel::prelude::*; use diesel_async::RunQueryDsl; use tower_sessions_redis_store::RedisStore; -use crate::models::user::{DbUser, UserCredentials}; +use crate::models::user::{DbUser, HashedUserCredentials, UserCredentials}; use crate::server::{ database::{DbConn, DbPool}, key_val_store::KeyValPool, @@ -76,6 +76,17 @@ impl AuthnBackend for AuthBackend { } } +pub async fn create_user( + db_conn: &mut DbConn, + credentials: &HashedUserCredentials, +) -> Result { + diesel::insert_into(crate::schema::users::table) + .values(credentials) + .get_result(db_conn) + .await + .err_context("Error creating user") +} + pub async fn get_user_by_id(db_conn: &mut DbConn, id: i32) -> Result> { crate::schema::users::table .find(id)