From f4e9e668c621e4f2254e26a0a5a8706c5277d571 Mon Sep 17 00:00:00 2001 From: Benjamin Milde Date: Sun, 20 Mar 2016 19:16:52 +0100 Subject: [PATCH] The process property prevented accurate viewable permission responses. --- DynamicRoleSupport.module | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/DynamicRoleSupport.module b/DynamicRoleSupport.module index af23d5f..4e0169c 100644 --- a/DynamicRoleSupport.module +++ b/DynamicRoleSupport.module @@ -521,10 +521,14 @@ class DynamicRoleSupport extends WireData implements Module, ConfigurableModule $query = $this->wire('database')->prepare($sql); $query->bindValue(':id', $page->id); $query->execute(); - } + } + + // We're not interested in any process related permissions + $tempProcess = $page->process; + $page->process = null; - $guest = $this->wire('users')->get('guest'); - $guestViewable = $page->viewable($guest); + $guest = $this->wire('users')->get('guest'); + $guestViewable = $page->viewable($guest); foreach($this->wire('droles') as $drole) { @@ -564,7 +568,10 @@ class DynamicRoleSupport extends WireData implements Module, ConfigurableModule break; } } - } + } + + // Reset nullified process for page + $page->process = $tempProcess; // if something is editable, it must also be viewable if(($editable || $addable) && !$viewable) $viewable = true;