refactor(server): file_management_service: move all method without owner check into private, add folder_ports
This commit is contained in:
@@ -17,7 +17,7 @@ use crate::application::ports::favorites_ports::FavoritesUseCase;
|
||||
use crate::application::ports::file_ports::{
|
||||
FileManagementUseCase, FileRetrievalUseCase, FileUploadUseCase,
|
||||
};
|
||||
use crate::application::ports::inbound::FolderUseCase;
|
||||
use crate::application::ports::folder_ports::FolderUseCase;
|
||||
use crate::application::ports::trash_ports::TrashUseCase;
|
||||
use crate::common::di::AppState;
|
||||
use crate::common::mime_detect::{filename_from_path, refine_content_type};
|
||||
@@ -656,7 +656,7 @@ async fn handle_mkcol(
|
||||
name: segment.to_string(),
|
||||
parent_id: Some(parent_id.clone()),
|
||||
};
|
||||
match folder_service.create_folder(dto, user.id).await {
|
||||
match folder_service.create_folder_with_perms(dto, user.id).await {
|
||||
Ok(created) => {
|
||||
parent_id = created.id.clone();
|
||||
}
|
||||
@@ -732,7 +732,7 @@ async fn handle_delete(
|
||||
|
||||
if let Ok(folder) = folder_service.get_folder_by_path(&internal_path).await {
|
||||
folder_service
|
||||
.delete_folder(&folder.id, user.id)
|
||||
.delete_folder_with_perms(&folder.id, user.id)
|
||||
.await
|
||||
.map_err(|e| AppError::internal_error(format!("Failed to delete folder: {}", e)))?;
|
||||
|
||||
@@ -744,7 +744,7 @@ async fn handle_delete(
|
||||
|
||||
if let Ok(file) = file_service.get_file_by_path(&internal_path).await {
|
||||
file_mgmt
|
||||
.delete_file(&file.id)
|
||||
.delete_file_with_perms(&file.id, user.id)
|
||||
.await
|
||||
.map_err(|e| AppError::internal_error(format!("Failed to delete file: {}", e)))?;
|
||||
|
||||
@@ -798,7 +798,7 @@ async fn handle_move(
|
||||
if src_parent_sub == dest_parent_sub {
|
||||
// Same parent → rename.
|
||||
file_mgmt
|
||||
.rename_file(&file.id, dest_name)
|
||||
.rename_file_with_perms(&file.id, user.id, dest_name)
|
||||
.await
|
||||
.map_err(|e| AppError::internal_error(format!("Rename failed: {}", e)))?;
|
||||
} else {
|
||||
@@ -809,14 +809,14 @@ async fn handle_move(
|
||||
.map_err(|_| AppError::not_found("Destination folder not found"))?;
|
||||
|
||||
file_mgmt
|
||||
.move_file(&file.id, Some(dest_parent.id.clone()))
|
||||
.move_file_with_perms(&file.id, user.id, Some(dest_parent.id.clone()))
|
||||
.await
|
||||
.map_err(|e| AppError::internal_error(format!("Move failed: {}", e)))?;
|
||||
|
||||
// If the filename changed too, rename after move.
|
||||
if file.name != dest_name {
|
||||
file_mgmt
|
||||
.rename_file(&file.id, dest_name)
|
||||
.rename_file_with_perms(&file.id, user.id, dest_name)
|
||||
.await
|
||||
.map_err(|e| AppError::internal_error(format!("Rename failed: {}", e)))?;
|
||||
}
|
||||
@@ -851,7 +851,7 @@ async fn handle_move(
|
||||
// Same parent → rename.
|
||||
use crate::application::dtos::folder_dto::RenameFolderDto;
|
||||
folder_service
|
||||
.rename_folder(
|
||||
.rename_folder_with_perms(
|
||||
&folder.id,
|
||||
RenameFolderDto {
|
||||
name: dest_name.to_string(),
|
||||
@@ -869,7 +869,7 @@ async fn handle_move(
|
||||
|
||||
use crate::application::dtos::folder_dto::MoveFolderDto;
|
||||
folder_service
|
||||
.move_folder(
|
||||
.move_folder_with_perms(
|
||||
&folder.id,
|
||||
MoveFolderDto {
|
||||
parent_id: Some(dest_parent.id.clone()),
|
||||
@@ -883,7 +883,7 @@ async fn handle_move(
|
||||
if folder.name != dest_name {
|
||||
use crate::application::dtos::folder_dto::RenameFolderDto;
|
||||
folder_service
|
||||
.rename_folder(
|
||||
.rename_folder_with_perms(
|
||||
&folder.id,
|
||||
RenameFolderDto {
|
||||
name: dest_name.to_string(),
|
||||
|
||||
Reference in New Issue
Block a user