/** * Perform an authentication check on this request */ protected function checkAuthentication($action) { $id = $this->request->getControllerName(); $restricted = $this->controller_map->isRestricted($id, $action); $requires_login = $this->controller_map->requiresLogin($id, $action); // get user from session $user = $this->request->getUser(); // this action requires authentication if ($restricted || $requires_login) { $redirect_to_login = false; // this action requires a logged-in user, but user is not logged-in if ($requires_login && !$user->isAuthenticated()) { $redirect_to_login = true; } elseif ($restricted && !$user->isAuthenticated() && !$user->isInLocalIpRange()) { $redirect_to_login = true; } // redirect to login page if ($redirect_to_login == true) { return $this->redirectToLogin(); } } }