X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/58fa7679bccafd00f9a50bcd4a87e96876331b03..refs/pull/3503/head:/app/Http/Controllers/BookExportController.php diff --git a/app/Http/Controllers/BookExportController.php b/app/Http/Controllers/BookExportController.php index 6d334ca73..cc8d48a35 100644 --- a/app/Http/Controllers/BookExportController.php +++ b/app/Http/Controllers/BookExportController.php @@ -2,13 +2,12 @@ namespace BookStack\Http\Controllers; -use BookStack\Entities\Tools\ExportFormatter; use BookStack\Entities\Repos\BookRepo; +use BookStack\Entities\Tools\ExportFormatter; use Throwable; class BookExportController extends Controller { - protected $bookRepo; protected $exportFormatter; @@ -19,28 +18,33 @@ class BookExportController extends Controller { $this->bookRepo = $bookRepo; $this->exportFormatter = $exportFormatter; + $this->middleware('can:content-export'); } /** * Export a book as a PDF file. + * * @throws Throwable */ public function pdf(string $bookSlug) { $book = $this->bookRepo->getBySlug($bookSlug); $pdfContent = $this->exportFormatter->bookToPdf($book); - return $this->downloadResponse($pdfContent, $bookSlug . '.pdf'); + + return $this->download()->directly($pdfContent, $bookSlug . '.pdf'); } /** * Export a book as a contained HTML file. + * * @throws Throwable */ public function html(string $bookSlug) { $book = $this->bookRepo->getBySlug($bookSlug); $htmlContent = $this->exportFormatter->bookToContainedHtml($book); - return $this->downloadResponse($htmlContent, $bookSlug . '.html'); + + return $this->download()->directly($htmlContent, $bookSlug . '.html'); } /** @@ -50,7 +54,8 @@ class BookExportController extends Controller { $book = $this->bookRepo->getBySlug($bookSlug); $textContent = $this->exportFormatter->bookToPlainText($book); - return $this->downloadResponse($textContent, $bookSlug . '.txt'); + + return $this->download()->directly($textContent, $bookSlug . '.txt'); } /** @@ -60,6 +65,7 @@ class BookExportController extends Controller { $book = $this->bookRepo->getBySlug($bookSlug); $textContent = $this->exportFormatter->bookToMarkdown($book); - return $this->downloadResponse($textContent, $bookSlug . '.md'); + + return $this->download()->directly($textContent, $bookSlug . '.md'); } }