private function GrantOnPage(Page $page, BackendAction $action) { if ($this->GetUser()->Equals($page->GetUser())) { return GrantResult::Allowed(); } $pageGroup = GroupFinder::FindPageGroup($page); $pageRights = RightsFinder::FindPageRights($page); if (!$pageGroup || !$pageRights) { return GrantResult::NoAccess(); } $groups = $this->GetGroups(); foreach ($groups as $group) { $result = $this->GrantGroupOnPage($group, $pageGroup, $pageRights, $action); if ($result->Equals(GrantResult::Allowed())) { return $result; } } return GrantResult::NoAccess(); }