*/
public function index()
{
- $view = setting()->getUser($this->currentUser, 'books_view_type', config('app.views.books'));
- $sort = setting()->getUser($this->currentUser, 'books_sort', 'name');
- $order = setting()->getUser($this->currentUser, 'books_sort_order', 'asc');
+ $view = setting()->getForCurrentUser('books_view_type', config('app.views.books'));
+ $sort = setting()->getForCurrentUser('books_sort', 'name');
+ $order = setting()->getForCurrentUser('books_sort_order', 'asc');
$books = $this->bookRepo->getAllPaginated('book', 18, $sort, $order);
- $recents = $this->signedIn ? $this->bookRepo->getRecentlyViewed('book', 4, 0) : false;
+ $recents = $this->isSignedIn() ? $this->bookRepo->getRecentlyViewed('book', 4, 0) : false;
$popular = $this->bookRepo->getPopular('book', 4, 0);
$new = $this->bookRepo->getRecentlyCreated('book', 4, 0);
* @throws NotFoundException
* @throws ImageUploadException
* @throws ValidationException
- * @throws Throwable
*/
public function store(Request $request, string $shelfSlug = null)
{
'image' => $this->imageRepo->getImageValidationRules(),
]);
- $book = $this->bookRepo->updateFromInput('book', $book, $request->all());
+ $book = $this->bookRepo->updateFromInput($book, $request->all());
$this->bookUpdateActions($book, $request);
Activity::add($book, 'book_update', $book->id);
* @return Factory|View
* @throws NotFoundException
*/
- public function getSortItem(string $bookSlug)
+ public function sortItem(string $bookSlug)
{
$book = $this->bookRepo->getBySlug($bookSlug);
$bookChildren = $this->bookRepo->getBookChildren($book);
// Get the books involved in the sort
$bookIdsInvolved = $bookIdsInvolved->unique()->toArray();
$booksInvolved = $this->bookRepo->getManyById('book', $bookIdsInvolved, false, true);
+
// Throw permission error if invalid ids or inaccessible books given.
if (count($bookIdsInvolved) !== count($booksInvolved)) {
$this->showPermissionError();
}
+
// Check permissions of involved books
$booksInvolved->each(function (Book $book) {
$this->checkOwnablePermission('book-update', $book);
$chapterChanged = ($mapItem->type === 'page') && intval($model->chapter_id) !== $mapItem->parentChapter;
if ($bookChanged) {
- $this->bookRepo->changeBook($mapItem->type, $mapItem->book, $model);
+ $this->bookRepo->changeBook($model, $mapItem->book);
}
if ($chapterChanged) {
$model->chapter_id = intval($mapItem->parentChapter);
// Rebuild permissions and add activity for involved books.
$booksInvolved->each(function (Book $book) {
- $this->bookRepo->buildJointPermissionsForBook($book);
+ $book->rebuildPermissions();
Activity::add($book, 'book_sort', $book->id);
});