From e6d3eeb7c055a2941600f048697298b0e77b2e2c Mon Sep 17 00:00:00 2001 From: Daniel Hader Date: Sat, 30 May 2026 18:28:16 -0500 Subject: admin account registration as part of server init --- src/utils.rs | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 src/utils.rs (limited to 'src/utils.rs') diff --git a/src/utils.rs b/src/utils.rs new file mode 100644 index 0000000..6a854d5 --- /dev/null +++ b/src/utils.rs @@ -0,0 +1,23 @@ +use crate::{database::Database, routes::auth::hash_password}; + +pub fn register_admin(database: &Database, email: &str, username: &str, password: &str) -> Result<(), ()> { + match database.fetch_user_by_email(email) { + Err(_) | Ok(Some(_)) => return Err(()), + Ok(None) => {}, + }; + + match database.fetch_user_by_username(username) { + Err(_) | Ok(Some(_)) => return Err(()), + Ok(None) => {}, + }; + + let Ok(password_hash) = hash_password(password) else { return Err(()) }; + + match database.insert_user(email, username, &password_hash, true) { + Ok(_) => Ok(()), + Err(e) => { + eprintln!("{:?}", e); + return Err(()); + } + } +} -- cgit v1.2.3