예제 #1
0
 /**
  * isPageAllowedForReading
  *
  * @param Page $page
  *
  * @return bool
  */
 public function isPageAllowedForReading(Page $page)
 {
     $allowed = $this->rcmUserService->isAllowed($this->buildPageResourceId($page->getSite()->getSiteId(), $page->getPageType(), $page->getName()), 'read', 'Rcm\\Acl\\ResourceProvider');
     /* ltrim added for BC */
     $currentPage = $page->getName();
     $siteLoginPage = ltrim($page->getSite()->getLoginPage(), '/');
     $notAuthorizedPage = ltrim($page->getSite()->getNotAuthorizedPage(), '/');
     $notFoundPage = ltrim($page->getSite()->getNotFoundPage(), '/');
     if ($siteLoginPage == $currentPage || $notAuthorizedPage == $currentPage || $notFoundPage == $currentPage) {
         $allowed = true;
     }
     return $allowed;
 }
예제 #2
0
 /**
  * prepPageRevisionForDisplay
  *
  * @param Page $page
  * @param null $pageRevisionId
  *
  * @return void|Response
  */
 public function prepPageRevisionForDisplay(Page $page, $pageRevisionId = null)
 {
     //  First Check for a page Revision
     if (!empty($pageRevisionId)) {
         $userCanSeeRevisions = $this->shouldShowRevisions($page->getSite()->getSiteId(), $page->getName(), $page->getPageType());
         if ($userCanSeeRevisions) {
             $revision = $page->getRevisionById($pageRevisionId);
             if (!empty($revision) || $revision instanceof Revision) {
                 $page->setCurrentRevision($revision);
             }
             return;
         } else {
             return $this->redirectToPage($page->getName(), $page->getPageType());
         }
     }
     // Check for staging
     if ($this->rcmIsSiteAdmin($page->getSite())) {
         $revision = $page->getStagedRevision();
         if (!empty($revision) || $revision instanceof Revision) {
             $page->setCurrentRevision($revision);
             return;
         }
     }
     // Finally look for published revision
     $revision = $page->getPublishedRevision();
     if (!empty($revision) || $revision instanceof Revision) {
         $page->setCurrentRevision($revision);
     }
     return;
 }