From 82c6597a603f34ed14c2962d195795e64f1c75b8 Mon Sep 17 00:00:00 2001 From: Dan Brown <ssddanbrown@googlemail.com> Date: Sat, 28 Aug 2021 15:44:44 +0100 Subject: [PATCH] Added notice for lack of shelf permission cascade Closes #2876 --- resources/lang/en/entities.php | 1 + resources/views/form/entity-permissions.blade.php | 4 ++++ resources/views/shelves/permissions.blade.php | 2 +- tests/Entity/BookShelfTest.php | 7 +++++++ 4 files changed, 13 insertions(+), 1 deletion(-) diff --git a/resources/lang/en/entities.php b/resources/lang/en/entities.php index 1d4632bce..1be9c18e0 100644 --- a/resources/lang/en/entities.php +++ b/resources/lang/en/entities.php @@ -99,6 +99,7 @@ return [ 'shelves_permissions' => 'Bookshelf Permissions', 'shelves_permissions_updated' => 'Bookshelf Permissions Updated', 'shelves_permissions_active' => 'Bookshelf Permissions Active', + 'shelves_permissions_cascade_warning' => 'Permissions on bookshelves do not automatically cascade to contained books. This is because a book can exist on multiple shelves. Permissions can however be copied down to child books using the option found below.', 'shelves_copy_permissions_to_books' => 'Copy Permissions to Books', 'shelves_copy_permissions' => 'Copy Permissions', 'shelves_copy_permissions_explain' => 'This will apply the current permission settings of this bookshelf to all books contained within. Before activating, ensure any changes to the permissions of this bookshelf have been saved.', diff --git a/resources/views/form/entity-permissions.blade.php b/resources/views/form/entity-permissions.blade.php index 178046ba2..ed04bc041 100644 --- a/resources/views/form/entity-permissions.blade.php +++ b/resources/views/form/entity-permissions.blade.php @@ -20,6 +20,10 @@ </div> </div> + @if($model instanceof \BookStack\Entities\Models\Bookshelf) + <p class="text-warn">{{ trans('entities.shelves_permissions_cascade_warning') }}</p> + @endif + <hr> <table permissions-table class="table permissions-table toggle-switch-list" style="{{ !$model->restricted ? 'display: none' : '' }}"> diff --git a/resources/views/shelves/permissions.blade.php b/resources/views/shelves/permissions.blade.php index 7e5396488..a26325518 100644 --- a/resources/views/shelves/permissions.blade.php +++ b/resources/views/shelves/permissions.blade.php @@ -14,7 +14,7 @@ ]]) </div> - <div class="card content-wrap"> + <div class="card content-wrap auto-height"> <h1 class="list-heading">{{ trans('entities.shelves_permissions') }}</h1> @include('form.entity-permissions', ['model' => $shelf]) </div> diff --git a/tests/Entity/BookShelfTest.php b/tests/Entity/BookShelfTest.php index cc9a7e44e..480d29002 100644 --- a/tests/Entity/BookShelfTest.php +++ b/tests/Entity/BookShelfTest.php @@ -308,6 +308,13 @@ class BookShelfTest extends TestCase $this->assertDatabaseHas('entity_permissions', ['restrictable_id' => $child->id, 'action' => 'update', 'role_id' => $editorRole->id]); } + public function test_permission_page_has_a_warning_about_no_cascading() + { + $shelf = Bookshelf::first(); + $resp = $this->asAdmin()->get($shelf->getUrl('/permissions')); + $resp->assertSeeText('Permissions on bookshelves do not automatically cascade to contained books.'); + } + public function test_bookshelves_show_in_breadcrumbs_if_in_context() { $shelf = Bookshelf::first();