Reverted work in
847a57a49aef525d2f7f429a30e58a34cf69d43f.
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
*/
public function up()
{
- DB::table('entity_permissions')
- ->where('entity_type', '=', 'bookshelf')
- ->update(['create' => 0]);
+ // Note: v23.06.2
+ // Migration removed since change to remove bookshelf create permissions was reverted.
+ // Create permissions were removed as incorrectly thought to be unused, but they did
+ // have a use via shelf permission copy-down to books.
}
/**
'shelves_permissions_updated' => 'Shelf Permissions Updated',
'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_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' => '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.',
'disabled' => $inheriting
])
</div>
- @if($entityType !== 'page' && $entityType !== 'bookshelf')
+ @if($entityType !== 'page')
<div class="px-l">
@include('form.custom-checkbox', [
'name' => 'permissions[' . $role->id . '][create]',
- 'label' => trans('common.create'),
+ 'label' => trans('common.create') . ($entityType === 'bookshelf' ? ' *' : ''),
'value' => 'true',
'checked' => $permission->create,
'disabled' => $inheriting
<hr class="mb-m">
- <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 class="flex-container-row justify-space-between gap-m wrap">
+ <div class="flex min-width-m">
+ @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>
</form>
\ No newline at end of file
$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();
$resp = $this->asAdmin()->get($shelf->getUrl('/permissions'));
$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()