private function filterRoutes(AppRequest $appRequest) { foreach ($this->pageRoutes as $key => $pageRoute) { if ($pageRoute->comparePath($appRequest->getRequestUrl())) { return $pageRoute->getFile(); } } return $this->getDefaultPage(); }
public function validateToken(AppRequest &$appRequest, $authTokenName) { if (!isset($appRequest->getAllHeaders()[$authTokenName]) || empty($appRequest->getAllHeaders()[$authTokenName])) { return false; } $result = $this->getValidationTokenByToken($appRequest->getAllHeaders()[$authTokenName]); if (empty($result)) { return false; } $this->updateTokenLastActiveDate($result); $appRequest->setAuthToken($result); return true; }
private function _callControllerMethod(AppRequest $appRequest, ControllerRoute $route) { if (!method_exists($this->calledController, $route->getRoutePointer()->getMethodName())) { throw new AemosCriticalException("unknown page method", HttpStatusCode::notFound()); } call_user_func_array(array($this->calledController, $route->getRoutePointer()->getMethodName()), $route->getParameters($appRequest->getRequestUrl())); }
public static function getInstance() { // проверяем актуальность экземпляра if (null === self::$_instance) { // создаем новый экземпляр self::$_instance = new self(); } // возвращаем созданный или существующий экземпляр return self::$_instance; }
/** * Get all headers from Server environment * saves the headers array to static variable * * @return void */ private static function parseRequestHeaders() { $headers = []; foreach ($_SERVER as $key => $value) { if (substr($key, 0, 5) != 'HTTP_') { continue; } $header = str_replace(' ', '-', ucwords(str_replace('_', ' ', strtolower(substr($key, 5))))); $headers[$header] = $value; } self::$headers = $headers; }
private function hasRole(AppRequest $appRequest, SecurityRoute $securityRoute) { if (empty($securityRoute->getRoles())) { return true; } $authTokenRole = $appRequest->getAuthToken()->getUserRole(); foreach ($securityRoute->getRoles() as $role) { if ($role === $authTokenRole) { return true; } } return false; }