private function hasUserAccess(CmsPage $page, CmsAuthHandlerDB $auth, $mode) { if ($auth->hasRootAccess()) { return true; } $pageRightsCompressed = array(); if (count($page->getRights()) <= 0) { return false; } foreach (array_reverse($page->getRights()) as $pr) { $pageRightsCompressed[$pr->groupkey] = $pr->rights; } foreach ($pageRightsCompressed as $id => $right) { if ($auth->hasRightGroup($id) === false) { continue; } if ($right == 3 || $mode === 'read' && $right == 2 || $mode === 'write' && $right == 1) { return true; } } return false; }