mirror of
https://github.com/BookStackApp/BookStack.git
synced 2024-10-01 01:36:00 -04:00
Shelf permissions: reverted create removal
Reverted work in 847a57a49a
.
Left test in but updated to new expectation.
Left migration in but removed content to prevent new pre-v23.06
upgraders loosing shelf create permission status.
Added note to permission to describe use-case.
For #4375
This commit is contained in:
parent
a83150131a
commit
ae834050f5
@ -12,9 +12,10 @@ return new class extends Migration
|
|||||||
*/
|
*/
|
||||||
public function up()
|
public function up()
|
||||||
{
|
{
|
||||||
DB::table('entity_permissions')
|
// Note: v23.06.2
|
||||||
->where('entity_type', '=', 'bookshelf')
|
// Migration removed since change to remove bookshelf create permissions was reverted.
|
||||||
->update(['create' => 0]);
|
// Create permissions were removed as incorrectly thought to be unused, but they did
|
||||||
|
// have a use via shelf permission copy-down to books.
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -106,6 +106,7 @@ return [
|
|||||||
'shelves_permissions_updated' => 'Shelf Permissions Updated',
|
'shelves_permissions_updated' => 'Shelf Permissions Updated',
|
||||||
'shelves_permissions_active' => 'Shelf Permissions Active',
|
'shelves_permissions_active' => 'Shelf Permissions Active',
|
||||||
'shelves_permissions_cascade_warning' => 'Permissions on shelves 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_permissions_cascade_warning' => 'Permissions on shelves 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_permissions_create' => 'Shelf create permissions are only used for copying permissions to child books using the action below. They do not control the ability to create books.',
|
||||||
'shelves_copy_permissions_to_books' => 'Copy Permissions to Books',
|
'shelves_copy_permissions_to_books' => 'Copy Permissions to Books',
|
||||||
'shelves_copy_permissions' => 'Copy Permissions',
|
'shelves_copy_permissions' => 'Copy Permissions',
|
||||||
'shelves_copy_permissions_explain' => 'This will apply the current permission settings of this shelf to all books contained within. Before activating, ensure any changes to the permissions of this shelf have been saved.',
|
'shelves_copy_permissions_explain' => 'This will apply the current permission settings of this shelf to all books contained within. Before activating, ensure any changes to the permissions of this shelf have been saved.',
|
||||||
|
@ -44,11 +44,11 @@ $inheriting - Boolean if the current row should be marked as inheriting default
|
|||||||
'disabled' => $inheriting
|
'disabled' => $inheriting
|
||||||
])
|
])
|
||||||
</div>
|
</div>
|
||||||
@if($entityType !== 'page' && $entityType !== 'bookshelf')
|
@if($entityType !== 'page')
|
||||||
<div class="px-l">
|
<div class="px-l">
|
||||||
@include('form.custom-checkbox', [
|
@include('form.custom-checkbox', [
|
||||||
'name' => 'permissions[' . $role->id . '][create]',
|
'name' => 'permissions[' . $role->id . '][create]',
|
||||||
'label' => trans('common.create'),
|
'label' => trans('common.create') . ($entityType === 'bookshelf' ? ' *' : ''),
|
||||||
'value' => 'true',
|
'value' => 'true',
|
||||||
'checked' => $permission->create,
|
'checked' => $permission->create,
|
||||||
'disabled' => $inheriting
|
'disabled' => $inheriting
|
||||||
|
@ -70,8 +70,17 @@
|
|||||||
|
|
||||||
<hr class="mb-m">
|
<hr class="mb-m">
|
||||||
|
|
||||||
<div class="text-right">
|
<div class="flex-container-row justify-space-between gap-m wrap">
|
||||||
<a href="{{ $model->getUrl() }}" class="button outline">{{ trans('common.cancel') }}</a>
|
<div class="flex min-width-m">
|
||||||
<button type="submit" class="button">{{ trans('entities.permissions_save') }}</button>
|
@if($model instanceof \BookStack\Entities\Models\Bookshelf)
|
||||||
|
<p class="small text-muted mb-none">
|
||||||
|
* {{ trans('entities.shelves_permissions_create') }}
|
||||||
|
</p>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
<div class="text-right">
|
||||||
|
<a href="{{ $model->getUrl() }}" class="button outline">{{ trans('common.cancel') }}</a>
|
||||||
|
<button type="submit" class="button">{{ trans('entities.permissions_save') }}</button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
@ -413,13 +413,14 @@ class EntityPermissionsTest extends TestCase
|
|||||||
$this->entityRestrictionFormTest(Page::class, 'Page Permissions', 'delete', '2');
|
$this->entityRestrictionFormTest(Page::class, 'Page Permissions', 'delete', '2');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function test_shelf_create_permission_not_visible()
|
public function test_shelf_create_permission_visible_with_notice()
|
||||||
{
|
{
|
||||||
$shelf = $this->entities->shelf();
|
$shelf = $this->entities->shelf();
|
||||||
|
|
||||||
$resp = $this->asAdmin()->get($shelf->getUrl('/permissions'));
|
$resp = $this->asAdmin()->get($shelf->getUrl('/permissions'));
|
||||||
$html = $this->withHtml($resp);
|
$html = $this->withHtml($resp);
|
||||||
$html->assertElementNotExists('input[name$="[create]"]');
|
$html->assertElementExists('input[name$="[create]"]');
|
||||||
|
$resp->assertSee('Shelf create permissions are only used for copying permissions to child books using the action below.');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function test_restricted_pages_not_visible_in_book_navigation_on_pages()
|
public function test_restricted_pages_not_visible_in_book_navigation_on_pages()
|
||||||
|
Loading…
Reference in New Issue
Block a user