+
+ /**
+ * Show the permissions view.
+ */
+ public function showPermissions(string $bookSlug)
+ {
+ $book = $this->bookRepo->getBySlug($bookSlug);
+ $this->checkOwnablePermission('restrictions-manage', $book);
+
+ return view('books.permissions', [
+ 'book' => $book,
+ ]);
+ }
+
+ /**
+ * Set the restrictions for this book.
+ * @throws Throwable
+ */
+ public function permissions(Request $request, PermissionsUpdater $permissionsUpdater, string $bookSlug)
+ {
+ $book = $this->bookRepo->getBySlug($bookSlug);
+ $this->checkOwnablePermission('restrictions-manage', $book);
+
+ $permissionsUpdater->updateFromPermissionsForm($book, $request);
+
+ $this->showSuccessNotification(trans('entities.books_permissions_updated'));
+ return redirect($book->getUrl());
+ }