mirror of
https://github.com/BookStackApp/BookStack.git
synced 2025-03-26 17:19:54 +08:00
ZIP Exports: Prevent book child page drafts from being included
Some checks are pending
analyse-php / build (push) Waiting to run
lint-php / build (push) Waiting to run
test-migrations / build (8.1) (push) Waiting to run
test-migrations / build (8.2) (push) Waiting to run
test-migrations / build (8.3) (push) Waiting to run
test-migrations / build (8.4) (push) Waiting to run
test-php / build (8.1) (push) Waiting to run
test-php / build (8.2) (push) Waiting to run
test-php / build (8.3) (push) Waiting to run
test-php / build (8.4) (push) Waiting to run
Some checks are pending
analyse-php / build (push) Waiting to run
lint-php / build (push) Waiting to run
test-migrations / build (8.1) (push) Waiting to run
test-migrations / build (8.2) (push) Waiting to run
test-migrations / build (8.3) (push) Waiting to run
test-migrations / build (8.4) (push) Waiting to run
test-php / build (8.1) (push) Waiting to run
test-php / build (8.2) (push) Waiting to run
test-php / build (8.3) (push) Waiting to run
test-php / build (8.4) (push) Waiting to run
Added test to cover
This commit is contained in:
parent
01825ddb93
commit
c84d999456
@ -70,7 +70,7 @@ class ZipExportBook extends ZipExportModel
|
||||
foreach ($children as $child) {
|
||||
if ($child instanceof Chapter) {
|
||||
$chapters[] = $child;
|
||||
} else if ($child instanceof Page) {
|
||||
} else if ($child instanceof Page && !$child->draft) {
|
||||
$pages[] = $child;
|
||||
}
|
||||
}
|
||||
|
@ -198,7 +198,7 @@ class ZipExportTest extends TestCase
|
||||
|
||||
public function test_book_export()
|
||||
{
|
||||
$book = $this->entities->book();
|
||||
$book = $this->entities->bookHasChaptersAndPages();
|
||||
$book->tags()->saveMany(Tag::factory()->count(2)->make());
|
||||
|
||||
$zipResp = $this->asEditor()->get($book->getUrl("/export/zip"));
|
||||
@ -251,6 +251,35 @@ class ZipExportTest extends TestCase
|
||||
$this->assertCount($chapter->pages()->count(), $chapterData['pages']);
|
||||
}
|
||||
|
||||
public function test_draft_pages_are_not_included()
|
||||
{
|
||||
$editor = $this->users->editor();
|
||||
$entities = $this->entities->createChainBelongingToUser($editor);
|
||||
$book = $entities['book'];
|
||||
$page = $entities['page'];
|
||||
$chapter = $entities['chapter'];
|
||||
$book->tags()->saveMany(Tag::factory()->count(2)->make());
|
||||
|
||||
$page->created_by = $editor->id;
|
||||
$page->draft = true;
|
||||
$page->save();
|
||||
|
||||
$zipResp = $this->actingAs($editor)->get($book->getUrl("/export/zip"));
|
||||
$zip = $this->extractZipResponse($zipResp);
|
||||
$this->assertCount(0, $zip->data['book']['chapters'][0]['pages'] ?? ['cat']);
|
||||
|
||||
$zipResp = $this->actingAs($editor)->get($chapter->getUrl("/export/zip"));
|
||||
$zip = $this->extractZipResponse($zipResp);
|
||||
$this->assertCount(0, $zip->data['chapter']['pages'] ?? ['cat']);
|
||||
|
||||
$page->chapter_id = 0;
|
||||
$page->save();
|
||||
|
||||
$zipResp = $this->actingAs($editor)->get($book->getUrl("/export/zip"));
|
||||
$zip = $this->extractZipResponse($zipResp);
|
||||
$this->assertCount(0, $zip->data['book']['pages'] ?? ['cat']);
|
||||
}
|
||||
|
||||
|
||||
public function test_cross_reference_links_are_converted()
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user