Implement permission check on pages used in link lists.

This commit is contained in:
2026-04-20 12:28:54 +10:00
parent 8f19bd924f
commit 5d89e6dcf4

View File

@@ -91,6 +91,22 @@ Kirby::plugin(
$pages = site()->index(true)->filterBy("linkLocation", $linkLocation); $pages = site()->index(true)->filterBy("linkLocation", $linkLocation);
foreach ($pages as $page) { foreach ($pages as $page) {
if (kirby()->plugin("hobbyhome/permissions")) {
// Hacky way of allowing us to run a hook multiple times from within another hook.
$events = kirby()->events;
call_user_func(
\Closure::bind(
function () use ($events) {
unset($events->processed["permissions.page:check"]);
}, null, $events
)
);
if (!$page->hasPerm()) {
continue;
}
}
if ($page->isDraft() && !($user = kirby()->user() and $user->role()->isAdmin())) { if ($page->isDraft() && !($user = kirby()->user() and $user->role()->isAdmin())) {
continue; continue;
} }