]> BookStack Code Mirror - bookstack/commitdiff
Changed the sort view to only show books to which we have an update permission.
authorAbijeet <redacted>
Sun, 31 Dec 2017 11:14:46 +0000 (16:44 +0530)
committerAbijeet <redacted>
Sun, 31 Dec 2017 11:14:46 +0000 (16:44 +0530)
Signed-off-by: Abijeet <redacted>
app/Http/Controllers/BookController.php
app/Repos/EntityRepo.php

index c042c502b1b653dca6dc209024d78fb152e29305..700f7a06f6217d22c8a894bcc0420ed8e0328a2b 100644 (file)
@@ -155,7 +155,7 @@ class BookController extends Controller
         $book = $this->entityRepo->getBySlug('book', $bookSlug);
         $this->checkOwnablePermission('book-update', $book);
         $bookChildren = $this->entityRepo->getBookChildren($book, true);
-        $books = $this->entityRepo->getAll('book', false);
+        $books = $this->entityRepo->getAll('book', false, 'update');
         $this->setPageTitle(trans('entities.books_sort_named', ['bookName'=>$book->getShortName()]));
         return view('books/sort', ['book' => $book, 'current' => $book, 'books' => $books, 'bookChildren' => $bookChildren]);
     }
@@ -229,9 +229,7 @@ class BookController extends Controller
             if ($model->priority !== $priority || $model->book_id !== $bookId || ($isPage && $model->chapter_id !== $chapterId)) {
                 $this->entityRepo->changeBook($isPage?'page':'chapter', $bookId, $model);
                 $model->priority = $priority;
-                if ($isPage) {
-                    $model->chapter_id = $chapterId;
-                }
+                if ($isPage) $model->chapter_id = $chapterId;
                 $model->save();
                 $updatedModels->push($model);
             }
index 24c680234241471caa275462832cd4f977178336..2c92e1907228548dc2d2f89209e27608fa8fb71f 100644 (file)
@@ -113,9 +113,9 @@ class EntityRepo
      * @param bool $allowDrafts
      * @return \Illuminate\Database\Query\Builder
      */
-    protected function entityQuery($type, $allowDrafts = false)
+    protected function entityQuery($type, $allowDrafts = false, $permission = 'view')
     {
-        $q = $this->permissionService->enforceEntityRestrictions($type, $this->getEntity($type), 'view');
+        $q = $this->permissionService->enforceEntityRestrictions($type, $this->getEntity($type), $permission);
         if (strtolower($type) === 'page' && !$allowDrafts) {
             $q = $q->where('draft', '=', false);
         }
@@ -196,14 +196,15 @@ class EntityRepo
     }
 
     /**
-     * Get all entities of a type limited by count unless count if false.
+     * Get all entities of a type with the given permission, limited by count unless count is false.
      * @param string $type
      * @param integer|bool $count
+     * @param string $permission
      * @return Collection
      */
-    public function getAll($type, $count = 20)
+    public function getAll($type, $count = 20, $permission = 'view')
     {
-        $q = $this->entityQuery($type)->orderBy('name', 'asc');
+        $q = $this->entityQuery($type, false, $permission)->orderBy('name', 'asc');
         if ($count !== false) $q = $q->take($count);
         return $q->get();
     }