diff --git a/crates/db/src/transfer/user.rs b/crates/db/src/transfer/user.rs index 0c31978..85c40de 100644 --- a/crates/db/src/transfer/user.rs +++ b/crates/db/src/transfer/user.rs @@ -81,7 +81,7 @@ async fn preload(mut users: Vec) -> Result, DbErr> { } pub async fn find( - id: Option, name: Option, username: Option, group: Option, + id: Option, name: Option, username: Option, group: Option, email: Option, page: Option, size: Option, ) -> Result<(Vec, u64), DbErr> { let mut sql = entity::user::Entity::find(); @@ -110,6 +110,8 @@ pub async fn find( sql = sql.filter(entity::user::Column::Email.eq(email)); } + sql = sql.filter(entity::user::Column::IsDeleted.eq(false)); + let total = sql.clone().count(get_db()).await?; if let (Some(page), Some(size)) = (page, size) { diff --git a/crates/web/src/router/api/config/mod.rs b/crates/web/src/router/api/config/mod.rs index 2aa06a9..1ebe9af 100644 --- a/crates/web/src/router/api/config/mod.rs +++ b/crates/web/src/router/api/config/mod.rs @@ -5,29 +5,25 @@ use axum::{ response::{IntoResponse, Redirect}, }; use sea_orm::ActiveModelTrait; -use serde::{Deserialize, Serialize}; - +use serde_json::json; use crate::traits::{WebError, WebResponse}; pub fn router() -> Router { Router::new() - .route("/meta", axum::routing::get(get_meta)) + .route("/", axum::routing::get(get)) .route("/icon", axum::routing::get(get_icon)) } -#[derive(Clone, Debug, Serialize, Deserialize)] -pub struct Meta { - pub title: String, - pub description: String, -} - -pub async fn get_meta() -> Result, WebError> { +pub type ClientConfig = serde_json::Value; +pub async fn get() -> Result, WebError> { Ok(WebResponse { code: StatusCode::OK.as_u16(), - data: Some(Meta { - title: cds_config::get_config().meta.title, - description: cds_config::get_config().meta.description, - }), + data: Some(json!({ + "meta": { + "title": cds_config::get_config().meta.title, + "description": cds_config::get_config().meta.description, + }, + })), ..WebResponse::default() }) } diff --git a/crates/web/src/router/api/user/mod.rs b/crates/web/src/router/api/user/mod.rs index 2ab93d1..23159ed 100644 --- a/crates/web/src/router/api/user/mod.rs +++ b/crates/web/src/router/api/user/mod.rs @@ -55,7 +55,7 @@ pub struct GetRequest { pub id: Option, pub name: Option, pub email: Option, - pub group: Option, + pub group: Option, pub page: Option, pub size: Option, } @@ -156,6 +156,14 @@ pub async fn update( return Err(WebError::Forbidden(json!(""))); } + if let Some(email) = body.email { + body.email = Some(email.to_lowercase()); + } + + if let Some(username) = body.username { + body.username = Some(username.to_lowercase()); + } + if let Some(password) = body.password { let hashed_password = Argon2::default() .hash_password(password.as_bytes(), &SaltString::generate(&mut OsRng))