mirror of
https://github.com/BookStackApp/BookStack.git
synced 2024-10-29 23:22:34 +01: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()
|
||||
{
|
||||
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.
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -106,6 +106,7 @@ return [
|
||||
'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.',
|
||||
|
@ -44,11 +44,11 @@ $inheriting - Boolean if the current row should be marked as inheriting default
|
||||
'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
|
||||
|
@ -70,8 +70,17 @@
|
||||
|
||||
<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>
|
@ -413,13 +413,14 @@ class EntityPermissionsTest extends TestCase
|
||||
$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()
|
||||
|
Loading…
Reference in New Issue
Block a user