- return $parentClass::visible()->where('id', '=', $entityId)->first();
- }
-
- /**
- * Update the permissions of a page.
- */
- public function updatePermissions(Page $page, bool $restricted, Collection $permissions = null)
- {
- $this->baseRepo->updatePermissions($page, $restricted, $permissions);
- }
-
- /**
- * Change the page's parent to the given entity.
- */
- protected function changeParent(Page $page, Entity $parent)
- {
- $book = ($parent instanceof Book) ? $parent : $parent->book;
- $page->chapter_id = ($parent instanceof Chapter) ? $parent->id : 0;
- $page->save();
-
- if ($page->book->id !== $book->id) {
- $page->changeBook($book->id);
- }
-
- $page->load('book');
- $book->rebuildPermissions();
- }
-
- /**
- * Get a page revision to update for the given page.
- * Checks for an existing revisions before providing a fresh one.
- */
- protected function getPageRevisionToUpdate(Page $page): PageRevision
- {
- $drafts = $this->getUserDraftQuery($page)->get();
- if ($drafts->count() > 0) {
- return $drafts->first();
- }
-
- $draft = new PageRevision();
- $draft->page_id = $page->id;
- $draft->slug = $page->slug;
- $draft->book_slug = $page->book->slug;
- $draft->created_by = user()->id;
- $draft->type = 'update_draft';
- return $draft;
- }
-
- /**
- * Delete old revisions, for the given page, from the system.
- */
- protected function deleteOldRevisions(Page $page)
- {
- $revisionLimit = config('app.revision_limit');
- if ($revisionLimit === false) {
- return;
- }