From 2fb5ebbc9622b22426fb95e11f6860c0e31f8f7b Mon Sep 17 00:00:00 2001 From: Ryan Cramer Date: Mon, 16 Jul 2018 11:31:45 -0400 Subject: [PATCH] Fix issue processwire/processwire-issues#625 where nested repeater with image field when combined with $config->pagefileSecure and access control without guest page-view permission was not appearing for logged-in non-superuser --- wire/modules/Process/ProcessPageView.module | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/wire/modules/Process/ProcessPageView.module b/wire/modules/Process/ProcessPageView.module index d15a4f73..662bb52f 100644 --- a/wire/modules/Process/ProcessPageView.module +++ b/wire/modules/Process/ProcessPageView.module @@ -662,7 +662,14 @@ class ProcessPageView extends Process { $forPageID = substr($page->parent->name, strrpos($page->parent->name, '-') + 1); // for-page-(id) $forPage = $this->wire('pages')->get((int) $forPageID); // delegate viewable check to the page the repeater lives on - if($forPage->id && $forPage->viewable($field)) return $page; + if($forPage->id) { + if($forPage->viewable($field)) return $page; + if(strpos($forPage->template->name, 'repeater_') === 0) { + // go recursive for nested repeaters + $forPage = $this->checkAccessDelegated($forPage); + if($forPage && $forPage->id) return $forPage; + } + } } return null; }