From 510c56c18d038d89cef2b42952e450388173883f Mon Sep 17 00:00:00 2001 From: TeppoKoivula Date: Mon, 9 Mar 2015 12:22:13 +0200 Subject: [PATCH 1/2] Fix issue with getAccessPage() not working properly for Repeaters --- UserGroupsHooks.module | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/UserGroupsHooks.module b/UserGroupsHooks.module index f442fe2..dfbb837 100644 --- a/UserGroupsHooks.module +++ b/UserGroupsHooks.module @@ -25,7 +25,7 @@ class UserGroupsHooks extends WireData implements Module { return array( 'title' => 'User Groups Hooks', - 'version' => 14, + 'version' => 15, 'summary' => 'Autoload module that attachs all the hooks required by User Groups.', 'singular' => true, 'autoload' => true, @@ -585,6 +585,14 @@ class UserGroupsHooks extends WireData implements Module { if ( ! isset($page) ) return false; if ( ! $page->id ) return false; + // If this is a Repeater Page, access is managed elsewhere + if (substr($page->template, 0, 9) == "repeater_") { + if (preg_match("/\/for-page-([0-9]+)\//", $page->url, $matches)) { + $page = $this->pages->get($matches[1]); + if (!$page->id) return false; + } + } + // If page doesn't have manage_access field at all, no need to continue if ( ! $page->template->hasField($this->fieldManageAccess)) return false; From 06bdcc3a5284c98564b00ca4861b73ffe77633e9 Mon Sep 17 00:00:00 2001 From: TeppoKoivula Date: Tue, 10 Mar 2015 15:03:48 +0200 Subject: [PATCH 2/2] Additional validation check for Repeater items --- UserGroupsHooks.module | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/UserGroupsHooks.module b/UserGroupsHooks.module index dfbb837..4a5afc9 100644 --- a/UserGroupsHooks.module +++ b/UserGroupsHooks.module @@ -25,7 +25,7 @@ class UserGroupsHooks extends WireData implements Module { return array( 'title' => 'User Groups Hooks', - 'version' => 15, + 'version' => 16, 'summary' => 'Autoload module that attachs all the hooks required by User Groups.', 'singular' => true, 'autoload' => true, @@ -586,7 +586,7 @@ class UserGroupsHooks extends WireData implements Module { if ( ! $page->id ) return false; // If this is a Repeater Page, access is managed elsewhere - if (substr($page->template, 0, 9) == "repeater_") { + if (strpos($page->url, $this->config->urls->admin . "repeaters/") === 0 && substr($page->template, 0, 9) == "repeater_") { if (preg_match("/\/for-page-([0-9]+)\//", $page->url, $matches)) { $page = $this->pages->get($matches[1]); if (!$page->id) return false;