+
+ /**
+ * 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, string $bookSlug)
+ {
+ $book = $this->bookRepo->getBySlug($bookSlug);
+ $this->checkOwnablePermission('restrictions-manage', $book);
+
+ $restricted = $request->get('restricted') === 'true';
+ $permissions = $request->filled('restrictions') ? collect($request->get('restrictions')) : null;
+ $this->bookRepo->updatePermissions($book, $restricted, $permissions);
+
+ $this->showSuccessNotification(trans('entities.books_permissions_updated'));
+ return redirect($book->getUrl());
+ }