From c62f97d8f20db4141b3cff1fbbec0e4f23fe48d7 Mon Sep 17 00:00:00 2001 From: "M.Schmidt" Date: Mon, 13 Jul 2026 22:22:12 +0200 Subject: [PATCH] readd removed utility, cleanup/shorten enum usage --- src/application/services/drive_management_service.rs | 6 ++---- src/common/di.rs | 5 +++-- src/domain/entities/drive.rs | 6 ++++++ 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/application/services/drive_management_service.rs b/src/application/services/drive_management_service.rs index eba53de1..3276ce87 100644 --- a/src/application/services/drive_management_service.rs +++ b/src/application/services/drive_management_service.rs @@ -24,6 +24,7 @@ use uuid::Uuid; use crate::application::ports::authorization_ports::AuthorizationEngine; use crate::common::errors::DomainError; +use crate::domain::entities::drive::DriveKind; use crate::domain::repositories::drive_repository::{DriveRepository, DriveRepositoryError}; use crate::domain::repositories::subject_group_repository::SubjectGroupRepository; use crate::domain::services::authorization::{Grant, Permission, Resource, Role, Subject}; @@ -556,10 +557,7 @@ impl DriveManagementService { let drive = self.drive_repo.get_by_id(drive_id).await.map_err(|e| { DomainError::internal_error("Drive", format!("Failed to fetch drive: {e:?}")) })?; - if matches!( - drive.drive.kind, - crate::domain::entities::drive::DriveKind::Personal - ) { + if matches!(drive.drive.kind, DriveKind::Personal) { tracing::info!( target: "audit", event = "drive_membership.rejected", diff --git a/src/common/di.rs b/src/common/di.rs index a03c506b..be2f9c7a 100644 --- a/src/common/di.rs +++ b/src/common/di.rs @@ -6,6 +6,7 @@ use uuid::Uuid; use crate::application::ports::blob_storage_ports::BlobStorageBackend; use crate::application::ports::storage_ports::StorageUsagePort; use crate::common::config::StorageBackendType; +use crate::domain::entities::drive::DriveKind; use crate::domain::repositories::drive_repository::DriveRepository; use crate::infrastructure::db::DbPools; @@ -2201,11 +2202,11 @@ impl AppState { let drive = self.drive_repo.get_by_id(drive_id).await.ok()?.drive; match drive.kind { - crate::domain::entities::drive::DriveKind::Personal => { + DriveKind::Personal => { let (used, quota) = storage_svc.get_user_storage_info(user_id).await.ok()?; Some((used, (quota > 0).then(|| (quota - used).max(0)))) } - crate::domain::entities::drive::DriveKind::Shared => { + DriveKind::Shared => { let used = drive.used_bytes; Some((used, drive.quota_bytes.map(|q| (q - used).max(0)))) } diff --git a/src/domain/entities/drive.rs b/src/domain/entities/drive.rs index 274b7b70..d2f2cb9b 100644 --- a/src/domain/entities/drive.rs +++ b/src/domain/entities/drive.rs @@ -138,6 +138,12 @@ impl Drive { pub fn typed_policies(&self) -> DrivePolicies { DrivePolicies::from_value(&self.policies) } + + /// `true` if this drive is a personal drive of any kind (default or + /// secondary). Encapsulates the kind check at the call site. + pub fn is_personal(&self) -> bool { + matches!(self.kind, DriveKind::Personal) + } } /// Typed mirror of the `policies` JSONB. Five known keys; the JSONB column