Example #1
0
 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();
 }