Beispiel #1
0
 /**
  * @return rex_be_page
  */
 public static function getCurrentPageObject()
 {
     if (!self::$pageObject) {
         self::$pageObject = self::getPageObject(self::getCurrentPage());
     }
     return self::$pageObject;
 }
Beispiel #2
0
 public static function checkPagePermissions(rex_user $user)
 {
     $check = function (rex_be_page $page) use(&$check, $user) {
         if (!$page->checkPermission($user)) {
             return false;
         }
         $subpages = $page->getSubpages();
         foreach ($subpages as $key => $subpage) {
             if (!$check($subpage)) {
                 unset($subpages[$key]);
             }
         }
         $page->setSubpages($subpages);
         return true;
     };
     foreach (self::$pages as $key => $page) {
         if (!$check($page)) {
             unset(self::$pages[$key]);
         }
     }
     self::$pageObject = null;
     $page = self::getCurrentPageObject();
     // --- page pruefen und benoetigte rechte checken
     if (!$page) {
         // --- fallback zur user startpage -> rechte checken
         $page = self::getPageObject($user->getStartPage());
         if (!$page) {
             // --- fallback zur system startpage -> rechte checken
             $page = self::getPageObject(rex::getProperty('start_page'));
             if (!$page) {
                 // --- fallback zur profile page
                 $page = self::getPageObject('profile');
             }
         }
         rex_response::setStatus(rex_response::HTTP_NOT_FOUND);
         rex_response::sendRedirect($page->getHref());
     }
     if ($page !== ($leaf = $page->getFirstSubpagesLeaf())) {
         rex_response::setStatus(rex_response::HTTP_MOVED_PERMANENTLY);
         $url = $leaf->hasHref() ? $leaf->getHref() : rex_context::restore()->getUrl(['page' => $leaf->getFullKey()], false);
         rex_response::sendRedirect($url);
     }
 }