diff --git a/src/application/services/drive_management_service.rs b/src/application/services/drive_management_service.rs index b2b34537..eba53de1 100644 --- a/src/application/services/drive_management_service.rs +++ b/src/application/services/drive_management_service.rs @@ -556,7 +556,10 @@ 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 drive.drive.is_personal() { + if matches!( + drive.drive.kind, + crate::domain::entities::drive::DriveKind::Personal + ) { tracing::info!( target: "audit", event = "drive_membership.rejected", diff --git a/src/common/di.rs b/src/common/di.rs index 8700b55d..d64f79de 100644 --- a/src/common/di.rs +++ b/src/common/di.rs @@ -2169,12 +2169,15 @@ impl AppState { } let drive = self.drive_repo.get_by_id(drive_id).await.ok()?.drive; - if drive.is_personal() { - let (used, quota) = storage_svc.get_user_storage_info(user_id).await.ok()?; - Some((used, (quota > 0).then(|| (quota - used).max(0)))) - } else { - let used = drive.used_bytes; - Some((used, drive.quota_bytes.map(|q| (q - used).max(0)))) + match drive.kind { + crate::domain::entities::drive::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 => { + 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 7d1f562b..274b7b70 100644 --- a/src/domain/entities/drive.rs +++ b/src/domain/entities/drive.rs @@ -131,12 +131,6 @@ impl Drive { self.default_for_user == Some(user_id) } - /// `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 view of `policies` for enforcement code. Lenient deserialise: /// unknown keys are preserved on disk (the column stays the canonical /// JSONB bag) but ignored here, missing keys default to `false`.