use BookStack\Repos\EntityRepo;
use BookStack\Repos\UserRepo;
use BookStack\Services\ExportService;
-use Carbon\Carbon;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Views;
* @param string $chapterSlug
* @return Response
* @internal param bool $pageSlug
+ * @throws NotFoundException
*/
public function create($bookSlug, $chapterSlug = null)
{
- $book = $this->entityRepo->getBySlug('book', $bookSlug);
- $chapter = $chapterSlug ? $this->entityRepo->getBySlug('chapter', $chapterSlug, $bookSlug) : null;
+ if ($chapterSlug !== null) {
+ $chapter = $this->entityRepo->getBySlug('chapter', $chapterSlug, $bookSlug);
+ $book = $chapter->book;
+ } else {
+ $chapter = null;
+ $book = $this->entityRepo->getBySlug('book', $bookSlug);
+ }
+
$parent = $chapter ? $chapter : $book;
$this->checkOwnablePermission('page-create', $parent);
return redirect($draft->getUrl());
}
- // Otherwise show edit view
+ // Otherwise show the edit view if they're a guest
$this->setPageTitle(trans('entities.pages_new'));
return view('pages/guest-create', ['parent' => $parent]);
}
'name' => 'required|string|max:255'
]);
- $book = $this->entityRepo->getBySlug('book', $bookSlug);
- $chapter = $chapterSlug ? $this->entityRepo->getBySlug('chapter', $chapterSlug, $bookSlug) : null;
+ if ($chapterSlug !== null) {
+ $chapter = $this->entityRepo->getBySlug('chapter', $chapterSlug, $bookSlug);
+ $book = $chapter->book;
+ } else {
+ $chapter = null;
+ $book = $this->entityRepo->getBySlug('book', $bookSlug);
+ }
+
$parent = $chapter ? $chapter : $book;
$this->checkOwnablePermission('page-create', $parent);
public function editDraft($bookSlug, $pageId)
{
$draft = $this->entityRepo->getById('page', $pageId, true);
- $this->checkOwnablePermission('page-create', $draft->book);
+ $this->checkOwnablePermission('page-create', $draft->parent);
$this->setPageTitle(trans('entities.pages_edit_draft'));
$draftsEnabled = $this->signedIn;
]);
$input = $request->all();
- $book = $this->entityRepo->getBySlug('book', $bookSlug);
-
$draftPage = $this->entityRepo->getById('page', $pageId, true);
+ $book = $draftPage->book;
- $chapterId = intval($draftPage->chapter_id);
- $parent = $chapterId !== 0 ? $this->entityRepo->getById('chapter', $chapterId) : $book;
+ $parent = $draftPage->parent;
$this->checkOwnablePermission('page-create', $parent);
if ($parent->isA('chapter')) {