diff options
| author | Daniel Hader <[email protected]> | 2026-05-30 18:28:16 -0500 |
|---|---|---|
| committer | Daniel Hader <[email protected]> | 2026-05-30 18:28:16 -0500 |
| commit | e6d3eeb7c055a2941600f048697298b0e77b2e2c (patch) | |
| tree | fc7506660cab7a0eb54d8e9c2f5f5f6dc3ec26db /src/utils.rs | |
| parent | 5e19bada513378eda6a16d7ea13a0db9679e3836 (diff) | |
admin account registration as part of server init
Diffstat (limited to 'src/utils.rs')
| -rw-r--r-- | src/utils.rs | 23 |
1 files changed, 23 insertions, 0 deletions
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(()); + } + } +} |
