From 9bccfcf7c3c8f298c6eaa3a1d03458492314ea43 Mon Sep 17 00:00:00 2001 From: Hector van der Aa Date: Fri, 5 Dec 2025 23:49:31 +0100 Subject: [PATCH] Cargo fmt and clippy fix --- src/backend/src/auth/mod.rs | 15 +++++++-------- src/backend/src/config.rs | 13 +++---------- src/backend/src/core/user_routines.rs | 24 +++++++++--------------- src/backend/src/domain/user.rs | 10 +++++----- src/backend/src/domain/user_prems.rs | 10 +--------- src/backend/src/infra/db/perms.rs | 4 ++-- src/backend/src/main.rs | 3 +-- src/backend/src/router/middleware.rs | 14 +++++++------- src/backend/src/router/mod.rs | 2 -- src/backend/src/state.rs | 11 ++++------- 10 files changed, 39 insertions(+), 67 deletions(-) diff --git a/src/backend/src/auth/mod.rs b/src/backend/src/auth/mod.rs index e20fb53..2552198 100644 --- a/src/backend/src/auth/mod.rs +++ b/src/backend/src/auth/mod.rs @@ -1,12 +1,11 @@ use crate::prelude::*; -use std::i64; use anyhow::Result; use argon2::{ Argon2, PasswordHash, PasswordVerifier, password_hash::{PasswordHasher, SaltString, rand_core::OsRng}, }; -use axum::{extract::State, http::StatusCode}; +use axum::http::StatusCode; use chrono::{Duration, Utc}; use jsonwebtoken::{DecodingKey, EncodingKey, Header, TokenData, Validation, decode, encode}; @@ -26,8 +25,8 @@ pub fn verify_password(password: &str, password_hash: &str) -> Result return Ok(true), - Err(password_hash::Error::Password) => return Ok(false), + Ok(_) => Ok(true), + Err(password_hash::Error::Password) => Ok(false), Err(e) => Err(e), } } @@ -37,8 +36,8 @@ pub fn gen_jwt(username: String) -> Result { let secret: String = "verysafestring".to_string(); let now = Utc::now(); let expire: chrono::TimeDelta = Duration::hours(24); - let exp = (now + expire).timestamp() as i64; - let iat = now.timestamp() as i64; + let exp = (now + expire).timestamp(); + let iat = now.timestamp(); let claim = AuthClaims { iat, exp, username }; encode( @@ -48,7 +47,7 @@ pub fn gen_jwt(username: String) -> Result { ) .map_err(|e| { error!(error = %e, username = claim.username, "create jwt failed"); - return StatusCode::INTERNAL_SERVER_ERROR; + StatusCode::INTERNAL_SERVER_ERROR }) } @@ -61,7 +60,7 @@ pub fn verify_jwt(token: String) -> Result, StatusCode> { ) .map_err(|e| { error!(error = %e, "verify jwt failed"); - return StatusCode::INTERNAL_SERVER_ERROR; + StatusCode::INTERNAL_SERVER_ERROR }); result } diff --git a/src/backend/src/config.rs b/src/backend/src/config.rs index 80c834d..aaf3e1e 100644 --- a/src/backend/src/config.rs +++ b/src/backend/src/config.rs @@ -1,10 +1,7 @@ use axum::http::Method; use std::collections::HashMap; -use crate::domain::{ - user::User, - user_prems::{UserActions, UserPermissions}, -}; +use crate::domain::user_prems::{UserActions, UserPermissions}; #[derive(Debug, Hash, Clone, PartialEq, Eq)] pub struct RouteKey { @@ -66,12 +63,8 @@ impl AppCfg { None => return false, }; - if req_perms.root == true { - if user_perms.root == true { - return true; - } else { - return false; - } + if req_perms.root { + return user_perms.root } req_perms diff --git a/src/backend/src/core/user_routines.rs b/src/backend/src/core/user_routines.rs index 118795d..594fc28 100644 --- a/src/backend/src/core/user_routines.rs +++ b/src/backend/src/core/user_routines.rs @@ -1,12 +1,12 @@ use crate::{ auth::{gen_jwt, verify_password}, - domain::{api::LoginData, user::InternalUser, user_prems::UserPermissions}, + domain::{api::LoginData, user::InternalUser}, infra::db, prelude::*, }; use std::sync::Arc; -use axum::{extract::State, http::StatusCode}; +use axum::http::StatusCode; use uuid::Uuid; use validator::Validate; @@ -27,7 +27,7 @@ pub async fn login( .await .map_err(|e| { error!(error = %e, username = login_data.username.as_str(), "fetch user during login failed"); - return StatusCode::INTERNAL_SERVER_ERROR; + StatusCode::INTERNAL_SERVER_ERROR })?; let user = match user { Some(value) => value, @@ -36,7 +36,7 @@ pub async fn login( let verify = verify_password(&login_data.password, &user.password_hash).map_err(|e| { error!(error = %e, username = login_data.username.as_str(), "verify password hash failed"); - return StatusCode::INTERNAL_SERVER_ERROR; + StatusCode::INTERNAL_SERVER_ERROR })?; if !verify { @@ -73,7 +73,7 @@ pub async fn create(state: Arc, new_user: NewUser) -> Result, uuid: Uuid) -> anyhow::Result { - user.attach_permissions(perms); - } - None => {} + if let Some(perms) = perms { + user.attach_permissions(perms); } Ok(Some(user)) @@ -215,11 +212,8 @@ pub async fn get_by_username( .await .context("failed to fetch user permissions")?; - match perms { - Some(perms) => { - user.attach_permissions(perms); - } - None => {} + if let Some(perms) = perms { + user.attach_permissions(perms); } Ok(Some(user)) diff --git a/src/backend/src/domain/user.rs b/src/backend/src/domain/user.rs index f1afeac..c8f277a 100644 --- a/src/backend/src/domain/user.rs +++ b/src/backend/src/domain/user.rs @@ -71,13 +71,13 @@ impl TryFrom for InternalNewUser { type Error = UserConversionError; fn try_from(value: NewUser) -> Result { let password_hash = - auth::hash_password(&value.password).map_err(|e| UserConversionError::HashFailed(e))?; + auth::hash_password(&value.password).map_err(UserConversionError::HashFailed)?; let uuid = Uuid::new_v4(); Ok(Self { - uuid: uuid, + uuid, username: value.username, email: value.email, - password_hash: password_hash, + password_hash, first_name: value.first_name, last_name: value.last_name, permissions: value.permissions.clone(), @@ -108,12 +108,12 @@ impl Display for UserConversionError { impl InternalUser { pub fn attach_permissions(&mut self, permissions: UserPermissions) { - self.permissions = UserPermissions::from(permissions); + self.permissions = permissions; } } impl User { pub fn attach_permissions(&mut self, permissions: UserPermissions) { - self.permissions = UserPermissions::from(permissions); + self.permissions = permissions; } } diff --git a/src/backend/src/domain/user_prems.rs b/src/backend/src/domain/user_prems.rs index 9ef669d..a0a5739 100644 --- a/src/backend/src/domain/user_prems.rs +++ b/src/backend/src/domain/user_prems.rs @@ -2,7 +2,6 @@ use std::collections::HashSet; use serde::{Deserialize, Serialize}; use sqlx::{prelude::FromRow, types::Json}; -use uuid::Uuid; #[derive(Debug, Clone, Copy, Eq, PartialEq, Hash, Serialize, Deserialize)] pub enum UserActions { @@ -10,6 +9,7 @@ pub enum UserActions { } #[derive(Debug, Clone, Deserialize, Serialize)] +#[derive(Default)] pub struct UserPermissions { pub root: bool, pub permissions: HashSet, @@ -39,14 +39,6 @@ impl From for UserPermissions { } } -impl Default for UserPermissions { - fn default() -> Self { - Self { - root: false, - permissions: HashSet::new(), - } - } -} impl UserPermissions { pub fn root() -> Self { diff --git a/src/backend/src/infra/db/perms.rs b/src/backend/src/infra/db/perms.rs index b04d933..f9d4b7b 100644 --- a/src/backend/src/infra/db/perms.rs +++ b/src/backend/src/infra/db/perms.rs @@ -46,8 +46,8 @@ pub async fn get_by_uuid(pool: &PgPool, uuid: Uuid) -> Result return Ok(Some(UserPermissions::from(val))), - None => return Ok(None), + Some(val) => Ok(Some(UserPermissions::from(val))), + None => Ok(None), } } diff --git a/src/backend/src/main.rs b/src/backend/src/main.rs index 51f8324..e0899ab 100644 --- a/src/backend/src/main.rs +++ b/src/backend/src/main.rs @@ -2,14 +2,13 @@ use std::{collections::HashMap, sync::Arc}; use anyhow::{Ok, Result}; use axum::http::Method; -use mineguard::instance::InstanceHandle; use rustymine_daemon::{ config::AppCfg, domain::user_prems::UserActions, router, state::{AppState, check_root}, }; -use tracing::{Level, debug, info}; +use tracing::{Level, info}; pub const APP_NAME: &str = env!("CARGO_PKG_NAME"); pub const APP_VERSION: &str = env!("CARGO_PKG_VERSION"); diff --git a/src/backend/src/router/middleware.rs b/src/backend/src/router/middleware.rs index 1520de5..83a91e4 100644 --- a/src/backend/src/router/middleware.rs +++ b/src/backend/src/router/middleware.rs @@ -5,7 +5,7 @@ use axum::{ Extension, extract::{MatchedPath, Request, State}, http::{self, Method, StatusCode, header::AUTHORIZATION}, - middleware::{Next, from_fn_with_state}, + middleware::Next, response::Response, }; @@ -13,7 +13,7 @@ use axum_extra::extract::CookieJar; use tower_http::cors::{Any, CorsLayer}; use tracing::debug; -use crate::{auth::verify_jwt, infra::db, state::AppState}; +use crate::{auth::verify_jwt, state::AppState}; pub async fn auth( State(state): State>, @@ -109,7 +109,7 @@ pub fn cors() -> CorsLayer { pub async fn permissions( State(state): State>, Extension(user): Extension, - mut req: Request, + req: Request, next: Next, ) -> Result { let request_method = req.method().clone(); @@ -117,7 +117,7 @@ pub async fn permissions( debug!(method = ?request_method, path = request_path, "permissions request started"); debug!("Calling user {}", user.username.clone()); - if user.permissions.root == true { + if user.permissions.root { return Ok(next.run(req).await); } @@ -133,7 +133,7 @@ pub async fn permissions( .config .route_allows(&method, path.as_str(), user.permissions.clone()) { - true => return Ok(next.run(req).await), - false => return Err(StatusCode::UNAUTHORIZED), - }; + true => Ok(next.run(req).await), + false => Err(StatusCode::UNAUTHORIZED), + } } diff --git a/src/backend/src/router/mod.rs b/src/backend/src/router/mod.rs index 55345a7..2ac0621 100644 --- a/src/backend/src/router/mod.rs +++ b/src/backend/src/router/mod.rs @@ -4,12 +4,10 @@ pub mod user_routes; use axum::{ Json, Router, http::StatusCode, - middleware::from_fn_with_state, routing::{get, post}, }; use serde_json::{Value, json}; use std::sync::Arc; -use tower::{Layer, ServiceBuilder}; use crate::prelude::*; use crate::state::AppState; diff --git a/src/backend/src/state.rs b/src/backend/src/state.rs index 81c058e..074a356 100644 --- a/src/backend/src/state.rs +++ b/src/backend/src/state.rs @@ -1,11 +1,8 @@ -use std::{collections::HashMap, process::exit, sync::Arc}; +use std::{process::exit, sync::Arc}; use crate::{ core, - domain::{ - user::{InternalNewUser, NewUser}, - user_prems::UserActions, - }, + domain::user::NewUser, prelude::*, }; @@ -41,8 +38,8 @@ impl AppState { info!("database ready after connect and migrate"); Self { - db_pool: db_pool, - config: config, + db_pool, + config, } } }