mirror of
https://github.com/BookStackApp/BookStack.git
synced 2024-10-01 01:36:00 -04:00
Allowed page includes on custom home
For #2279 Old hold-over for when include content permissions were handled less delicately.
This commit is contained in:
parent
505d7e604e
commit
d3a9645161
@ -316,6 +316,7 @@ class PageContent
|
||||
}
|
||||
|
||||
// Find page and skip this if page not found
|
||||
/** @var ?Page $matchedPage */
|
||||
$matchedPage = Page::visible()->find($pageId);
|
||||
if ($matchedPage === null) {
|
||||
$html = str_replace($fullMatch, '', $html);
|
||||
|
@ -96,9 +96,10 @@ class HomeController extends Controller
|
||||
if ($homepageOption === 'page') {
|
||||
$homepageSetting = setting('app-homepage', '0:');
|
||||
$id = intval(explode(':', $homepageSetting)[0]);
|
||||
/** @var Page $customHomepage */
|
||||
$customHomepage = Page::query()->where('draft', '=', false)->findOrFail($id);
|
||||
$pageContent = new PageContent($customHomepage);
|
||||
$customHomepage->html = $pageContent->render(true);
|
||||
$customHomepage->html = $pageContent->render(false);
|
||||
|
||||
return view('home.specific-page', array_merge($commonData, ['customHomepage' => $customHomepage]));
|
||||
}
|
||||
|
@ -5,6 +5,7 @@ namespace Tests;
|
||||
use BookStack\Auth\Role;
|
||||
use BookStack\Auth\User;
|
||||
use BookStack\Entities\Models\Bookshelf;
|
||||
use BookStack\Entities\Models\Page;
|
||||
|
||||
class HomepageTest extends TestCase
|
||||
{
|
||||
@ -78,6 +79,25 @@ class HomepageTest extends TestCase
|
||||
$pageDeleteReq->assertSessionMissing('error');
|
||||
}
|
||||
|
||||
public function test_custom_homepage_renders_includes()
|
||||
{
|
||||
$this->asEditor();
|
||||
/** @var Page $included */
|
||||
$included = Page::query()->first();
|
||||
$content = str_repeat('This is the body content of my custom homepage.', 20);
|
||||
$included->html = $content;
|
||||
$included->save();
|
||||
|
||||
$name = 'My custom homepage';
|
||||
$customPage = $this->newPage(['name' => $name, 'html' => '{{@' . $included->id . '}}']);
|
||||
$this->setSettings(['app-homepage' => $customPage->id]);
|
||||
$this->setSettings(['app-homepage-type' => 'page']);
|
||||
|
||||
$homeVisit = $this->get('/');
|
||||
$homeVisit->assertSee($name);
|
||||
$homeVisit->assertSee($content);
|
||||
}
|
||||
|
||||
public function test_set_book_homepage()
|
||||
{
|
||||
$editor = $this->getEditor();
|
||||
|
Loading…
Reference in New Issue
Block a user