From af3f08e728bac793469b01286fa34afabf36b275 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=8Carodej?= Date: Tue, 29 Mar 2022 12:28:22 +0200 Subject: [PATCH] fixed moving issue when user move folder with files into team folder --- .../Items/Actions/MoveFileOrFolderAction.php | 44 ++++++++++++++++--- 1 file changed, 37 insertions(+), 7 deletions(-) diff --git a/src/Domain/Items/Actions/MoveFileOrFolderAction.php b/src/Domain/Items/Actions/MoveFileOrFolderAction.php index 6f0487e1..075f6147 100644 --- a/src/Domain/Items/Actions/MoveFileOrFolderAction.php +++ b/src/Domain/Items/Actions/MoveFileOrFolderAction.php @@ -1,24 +1,54 @@ input('items') as $item) { - $item = get_item($item['type'], $item['id']); - - Gate::authorize('can-edit', [$item, $share]); + $entry = get_item($item['type'], $item['id']); - $item->update([ - 'parent_id' => $request->input('to_id'), - ]); + // Check permission + Gate::authorize('can-edit', [$entry, $share]); + + // Process folder + if ($item['type'] === 'folder') { + + // Determine, if we are moving folder into the team folder or not + $isTeamFolder = is_null($request->input('to_id')) + ? false + : Folder::find($request->input('to_id'))->getLatestParent()->team_folder; + + // Change team_folder mark for all children folders + ($this->setTeamFolderPropertyForAllChildren)($entry, $isTeamFolder); + + // Update folder + $entry->update([ + 'parent_id' => $request->input('to_id'), + 'team_folder' => $isTeamFolder, + ]); + } + + // Process file + if ($item['type'] !== 'folder') { + // Update file + $entry->update([ + 'parent_id' => $request->input('to_id'), + ]); + } } } }