From ceb2646502f69bd33c24e5aa3485bb351e1a2e61 Mon Sep 17 00:00:00 2001 From: Samuel Lorch Date: Sat, 9 Dec 2023 22:17:00 +0100 Subject: [PATCH] cleanup user code --- src/web/auth.rs | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/src/web/auth.rs b/src/web/auth.rs index cb1cbb9..f2b8f8a 100644 --- a/src/web/auth.rs +++ b/src/web/auth.rs @@ -1,4 +1,4 @@ -use crate::definitions::Referenceable; +use crate::definitions::system::User; use std::collections::HashMap; use rbtag::BuildInfo; @@ -60,25 +60,24 @@ pub fn routes() -> Router { .route("/session", post(session_handler)) } +fn get_user(name: String, users: Vec) -> Option { + for u in users { + if u.name == name { + return Some(u); + } + } + return None; +} + async fn login_handler( cookies: Cookies, State(state): State, Json(payload): Json, ) -> impl IntoResponse { - if state - .config_manager - .get_current_config() - .system - .users - .named_exists(payload.username.to_string()) - { - let user = state - .config_manager - .get_current_config() - .system - .users - .named_get(payload.username.to_string()); - + if let Some(user) = get_user( + payload.username.to_string(), + state.config_manager.get_current_config().system.users, + ) { if sha512_crypt::verify(payload.password, &user.hash) { let mut sessions = state.session_state.sessions.write().unwrap(); let id = Uuid::new_v4().to_string();