/** * Init user session * * @return UserSession */ public static function create(ServiceContainer $app) { $user = new UserSession($app); $user->setSecret($app->config['app']['secret']); // Init language $locale = $app->session->get('user.locale'); if (empty($locale)) { $locale = 'en_US'; } $user->setLocale($locale); return $user; }
/** * Before action handler * * @param GenericEvent $event * @return void */ protected function beforeAction(GenericEvent $event) { // Check if user logged in if (!$this->authEnabled || $this->user->isValid()) { return; } // Access denied if ($this->http->isJsonRpc()) { $data = ['jsonrpc' => '2.0', 'id' => null, 'error' => ['number' => 403, 'message' => 'Permission denied']]; $response = new JsonResponse($data, 403); $event->setArgument('response', $response); } else { // Redirect to login $url = $this->http->getBaseUrl('login'); $response = new RedirectResponse($url); $event->setArgument('response', $response); } }