]> BookStack Code Mirror - bookstack/blobdiff - app/Http/Controllers/PermissionsController.php
Guest create page: name field autofocus
[bookstack] / app / Http / Controllers / PermissionsController.php
index d8dca9825c4ed3e96c0732af6ca81f45425ad6df..7d908733bc1f439f36036e960a0546222f2a7248 100644 (file)
@@ -2,7 +2,9 @@
 
 namespace BookStack\Http\Controllers;
 
+use BookStack\Auth\Permissions\EntityPermission;
 use BookStack\Auth\Permissions\PermissionFormData;
+use BookStack\Auth\Role;
 use BookStack\Entities\Models\Book;
 use BookStack\Entities\Models\Bookshelf;
 use BookStack\Entities\Models\Chapter;
@@ -27,6 +29,7 @@ class PermissionsController extends Controller
         $page = Page::getBySlugs($bookSlug, $pageSlug);
         $this->checkOwnablePermission('restrictions-manage', $page);
 
+        $this->setPageTitle(trans('entities.pages_permissions'));
         return view('pages.permissions', [
             'page' => $page,
             'data' => new PermissionFormData($page),
@@ -56,6 +59,7 @@ class PermissionsController extends Controller
         $chapter = Chapter::getBySlugs($bookSlug, $chapterSlug);
         $this->checkOwnablePermission('restrictions-manage', $chapter);
 
+        $this->setPageTitle(trans('entities.chapters_permissions'));
         return view('chapters.permissions', [
             'chapter' => $chapter,
             'data' => new PermissionFormData($chapter),
@@ -85,6 +89,7 @@ class PermissionsController extends Controller
         $book = Book::getBySlug($slug);
         $this->checkOwnablePermission('restrictions-manage', $book);
 
+        $this->setPageTitle(trans('entities.books_permissions'));
         return view('books.permissions', [
             'book' => $book,
             'data' => new PermissionFormData($book),
@@ -114,6 +119,7 @@ class PermissionsController extends Controller
         $shelf = Bookshelf::getBySlug($slug);
         $this->checkOwnablePermission('restrictions-manage', $shelf);
 
+        $this->setPageTitle(trans('entities.shelves_permissions'));
         return view('shelves.permissions', [
             'shelf' => $shelf,
             'data' => new PermissionFormData($shelf),
@@ -148,4 +154,21 @@ class PermissionsController extends Controller
 
         return redirect($shelf->getUrl());
     }
+
+    /**
+     * Get an empty entity permissions form row for the given role.
+     */
+    public function formRowForRole(string $entityType, string $roleId)
+    {
+        $this->checkPermissionOr('restrictions-manage-all', fn() => userCan('restrictions-manage-own'));
+
+        $role = Role::query()->findOrFail($roleId);
+
+        return view('form.entity-permissions-row', [
+            'role' => $role,
+            'permission' => new EntityPermission(),
+            'entityType' => $entityType,
+            'inheriting' => false,
+        ]);
+    }
 }