Files
oxspeak_server/src/routes/core/mapper.rs
T
2026-05-17 13:33:10 +02:00

25 lines
730 B
Rust

use crate::auth::password::hash_password;
use crate::models::user;
use crate::routes::core::dto::JoinRequest;
use anyhow::Result as AnyResult;
use sea_orm::Set;
use uuid::Uuid;
pub fn join_request_to_user_am(
payload: JoinRequest,
superuser_token: Option<Uuid>,
) -> AnyResult<user::ActiveModel> {
let is_super_admin = match (payload.superuser_token.as_ref(), superuser_token) {
(Some(provided), Some(init)) => provided == &init.to_string(),
_ => false,
};
Ok(user::ActiveModel {
id: Default::default(),
username: Set(payload.username),
password: Set(hash_password(&payload.password)?),
is_superuser: Set(is_super_admin),
..Default::default()
})
}