Exemple #1
0
 /**
  * __invoke
  *
  * @param Request       $request
  * @param Response      $response
  * @param callable|null $out
  *
  * @return mixed
  */
 public function __invoke(Request $request, Response $response, callable $out = null)
 {
     $isAllowed = $this->rcmUserService->isAllowed($this->getOption($request, 'resourceId', null), $this->getOption($request, 'privilege', null));
     if ($isAllowed) {
         return $out($request, $response);
     }
     return $this->getResponseWithAclFailStatus($request, $response);
 }
 /**
  * Should link be shown in nav bar?
  *
  * @param $page
  *
  * @return bool
  */
 protected function shouldShowInNavigation(&$page)
 {
     if (isset($page['rcmOnly']) && $page['rcmOnly'] && empty($this->page)) {
         return false;
     }
     if (isset($page['acl']) && is_array($page['acl']) && !empty($page['acl']['resource'])) {
         $providerId = null;
         if (!empty($page['acl']['providerId'])) {
             $providerId = $page['acl']['providerId'];
         }
         $privilege = null;
         if (!empty($page['acl']['privilege'])) {
             $privilege = $page['acl']['privilege'];
         }
         $resource = $page['acl']['resource'];
         $resource = str_replace([':siteId', ':pageName'], [$this->currentSite->getSiteId(), $this->page->getName()], $resource);
         if (!empty($this->page)) {
             $resource = str_replace([':siteId', ':pageName'], [$this->currentSite->getSiteId(), $this->page->getName()], $resource);
         } else {
             $resource = str_replace([':siteId'], [$this->currentSite->getSiteId()], $resource);
         }
         if (!$this->rcmUserService->isAllowed($resource, $privilege, $providerId)) {
             return false;
         }
     }
     return true;
 }
Exemple #3
0
 /**
  * Check to make sure user can see revisions
  *
  * @return bool
  */
 public function shouldShowRevisions($siteId, $pageType, $pageName)
 {
     $allowedRevisions = $this->rcmUserService->isAllowed($this->buildPageResourceId($siteId, $pageType, $pageName), 'edit', 'Rcm\\Acl\\ResourceProvider');
     if ($allowedRevisions) {
         return true;
     }
     $allowedRevisions = $this->rcmUserService->isAllowed($this->buildPageResourceId($siteId, $pageType, $pageName), 'approve', 'Rcm\\Acl\\ResourceProvider');
     if ($allowedRevisions) {
         return true;
     }
     $allowedRevisions = $this->rcmUserService->isAllowed($this->buildPageResourceId($siteId, $pageType, $pageName), 'revisions', 'Rcm\\Acl\\ResourceProvider');
     if ($allowedRevisions) {
         return true;
     }
     $allowedRevisions = $this->rcmUserService->isAllowed($this->buildPagesResourceId($siteId), 'create', 'Rcm\\Acl\\ResourceProvider');
     if ($allowedRevisions) {
         return true;
     }
     return false;
 }
 /**
  * has Access
  *
  * @return boolean
  */
 public function hasAccess()
 {
     // no restrictions
     return $this->rcmUserService->isAllowed($this->resourceId, $this->privilege, $this->providerId);
 }
Exemple #5
0
 /**
  * __invoke
  *
  * @param string $resourceId resourceId
  * @param string $privilege  privilege
  * @param string $providerId providerId
  *
  * @return bool
  */
 public function __invoke($resourceId, $privilege = null, $providerId = 'Rcm\\Acl\\ResourceProvider')
 {
     return $this->rcmUserService->isAllowed($resourceId, $privilege, $providerId);
 }