Jarves\Router\FrontendRouter::checkPageAccess PHP Метод

checkPageAccess() публичный Метод

public checkPageAccess ( Node $page )
$page Jarves\Model\Node
    public function checkPageAccess(Node $page)
    {
        /** @var Node $oriPage */
        $oriPage = $page;
        if ($page->getAccessFrom() > 0 && $page->getAccessFrom() > time()) {
            $page = false;
        }
        if ($page->getAccessTo() > 0 && $page->getAccessTo() < time()) {
            $page = false;
        }
        if ($page->getAccessFromGroups() != '') {
            $access = false;
            $groups = ',' . $page->getAccessFromGroups() . ",";
            //eg ,2,4,5,
            $cgroups = null;
            if ($page['access_need_via'] == 0) {
                //we need to move this to a extra listener
                //                $cgroups =& $this->getJarves()->getClient()->getUser()->getGroups();
            } else {
                //                $htuser = $this->getJarves()->getClient()->login($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']);
                //
                //                if ($htuser['id'] > 0) {
                //                    $cgroups =& $htuser['groups'];
                //                }
            }
            if ($cgroups) {
                foreach ($cgroups as $group) {
                    if (strpos($groups, "," . $group['group_id'] . ",") !== false) {
                        $access = true;
                    }
                }
            }
            if (!$access) {
                //maybe we have access through the backend auth?
                if ($this->pageStack->isLoggedIn()) {
                    foreach ($this->pageStack->getUser()->getGroupIdsArray() as $groupId) {
                        if (false !== strpos($groups, "," . $groupId . ",")) {
                            $access = true;
                            break;
                        }
                    }
                }
            }
            if (!$access) {
                $page = false;
            }
        }
        if (!$page && ($to = $oriPage->getAccessRedirectTo())) {
            if (intval($to) > 0) {
                $to = $this->pageStack->getNodeUrl($to);
            }
            return new RedirectResponse($to);
        }
        //
        //        if (!$page && $oriPage->getAccessNeedVia() == 1) {
        //            $response = new Response('', 404);
        //
        //            return $response;
        //        }
    }