From a2087fe3ff3b33e1dcaececafa6dd6bb65a3feae Mon Sep 17 00:00:00 2001 From: Dan Brown Date: Sat, 5 Jan 2019 14:39:40 +0000 Subject: [PATCH] Made delete permissions a requirement for move operations Closes #1200 --- app/Http/Controllers/ChapterController.php | 2 + app/Http/Controllers/PageController.php | 2 + resources/views/chapters/show.blade.php | 4 +- resources/views/pages/show.blade.php | 4 +- tests/Entity/SortTest.php | 59 ++++++++++++++++++++-- 5 files changed, 65 insertions(+), 6 deletions(-) diff --git a/app/Http/Controllers/ChapterController.php b/app/Http/Controllers/ChapterController.php index a50306552..20ab96133 100644 --- a/app/Http/Controllers/ChapterController.php +++ b/app/Http/Controllers/ChapterController.php @@ -161,6 +161,7 @@ class ChapterController extends Controller $chapter = $this->entityRepo->getBySlug('chapter', $chapterSlug, $bookSlug); $this->setPageTitle(trans('entities.chapters_move_named', ['chapterName' => $chapter->getShortName()])); $this->checkOwnablePermission('chapter-update', $chapter); + $this->checkOwnablePermission('chapter-delete', $chapter); return view('chapters/move', [ 'chapter' => $chapter, 'book' => $chapter->book @@ -179,6 +180,7 @@ class ChapterController extends Controller { $chapter = $this->entityRepo->getBySlug('chapter', $chapterSlug, $bookSlug); $this->checkOwnablePermission('chapter-update', $chapter); + $this->checkOwnablePermission('chapter-delete', $chapter); $entitySelection = $request->get('entity_selection', null); if ($entitySelection === null || $entitySelection === '') { diff --git a/app/Http/Controllers/PageController.php b/app/Http/Controllers/PageController.php index 74595443b..b68655241 100644 --- a/app/Http/Controllers/PageController.php +++ b/app/Http/Controllers/PageController.php @@ -586,6 +586,7 @@ class PageController extends Controller { $page = $this->pageRepo->getPageBySlug($pageSlug, $bookSlug); $this->checkOwnablePermission('page-update', $page); + $this->checkOwnablePermission('page-delete', $page); return view('pages/move', [ 'book' => $page->book, 'page' => $page @@ -604,6 +605,7 @@ class PageController extends Controller { $page = $this->pageRepo->getPageBySlug($pageSlug, $bookSlug); $this->checkOwnablePermission('page-update', $page); + $this->checkOwnablePermission('page-delete', $page); $entitySelection = $request->get('entity_selection', null); if ($entitySelection === null || $entitySelection === '') { diff --git a/resources/views/chapters/show.blade.php b/resources/views/chapters/show.blade.php index ae450b8ee..f5f990145 100644 --- a/resources/views/chapters/show.blade.php +++ b/resources/views/chapters/show.blade.php @@ -20,11 +20,11 @@ @if(userCan('chapter-update', $chapter)) @icon('edit'){{ trans('common.edit') }} @endif - @if(userCan('chapter-update', $chapter) || userCan('restrictions-manage', $chapter) || userCan('chapter-delete', $chapter)) + @if((userCan('chapter-update', $chapter) && userCan('chapter-delete', $chapter) )|| userCan('restrictions-manage', $chapter) || userCan('chapter-delete', $chapter))