diff --git a/src/app/folder/controllers/FolderController.php b/src/app/folder/controllers/FolderController.php index 0b12c1b519133f50210a9f62e29bc34df21229e3..e8b9cd408ce9ef7825502cc090ba04510e34f7d1 100755 --- a/src/app/folder/controllers/FolderController.php +++ b/src/app/folder/controllers/FolderController.php @@ -72,16 +72,19 @@ class FolderController ]) ); + $folderScope = FolderController::getScopeFolders(['login' => $GLOBALS['userId'], 'folderId' => $folder['id'], 'edition' => true]); + $insert = [ - 'name' => $folder['label'], - 'id' => $folder['id'], - 'label' => $folder['label'], - 'public' => $folder['public'], - 'user_id' => $folder['user_id'], - 'parent_id' => $folder['parent_id'], - 'level' => $folder['level'], + 'name' => $folder['label'], + 'id' => $folder['id'], + 'label' => $folder['label'], + 'public' => $folder['public'], + 'user_id' => $folder['user_id'], + 'parent_id' => $folder['parent_id'], + 'level' => $folder['level'], 'countResources' => $count, - 'pinned' => $isPinned + 'pinned' => $isPinned, + 'canEdit' => !empty($folderScope) ]; if ($folder['level'] == 0) { array_splice($tree, 0, 0, [$insert]); @@ -255,6 +258,12 @@ class FolderController $data['parent_id'] = null; $level = 0; } else { + $folder = FolderController::getScopeFolders(['login' => $GLOBALS['userId'], 'folderId' => $data['parent_id'], 'edition' => true]); + if (empty($folder)) { + if (empty($folder[0])) { + return $response->withStatus(400)->withJson(['errors' => 'Parent Folder not found or out of your perimeter']); + } + } $folderParent = FolderModel::getById(['id' => $data['parent_id'], 'select' => ['folders.id', 'parent_id', 'level']]); $level = $folderParent['level'] + 1; } diff --git a/src/frontend/app/folder/folder-update/folder-update.component.ts b/src/frontend/app/folder/folder-update/folder-update.component.ts index 2f976a80d38263842081d7573a18cece165864de..6e7bb73570c5af7fffbf89c950dc4fbd8e5290ae 100644 --- a/src/frontend/app/folder/folder-update/folder-update.component.ts +++ b/src/frontend/app/folder/folder-update/folder-update.component.ts @@ -101,7 +101,7 @@ export class FolderUpdateComponent implements OnInit { element['state'].selected = true; } - if (element.id === this.folder.id || currentParentId === element.parent_id) { + if (element.id === this.folder.id || currentParentId === element.parent_id || !element.canEdit) { currentParentId = element.id; element['state'].opened = false; element['state'].disabled = true;