/** * Handles impersonation form * @param Request $request * @return mixed */ public function impersonateAction(Request $request) { $id = $request->data()->getRequired('id'); $user = $this->userRepository()->query()->in($id)->findOne(); $userDomain = $this->builder->auth()->userDomain(); $userDomain->setUser($user, 'session'); /** @var SessionProvider $sessionProvider */ $sessionProvider = $userDomain->provider('session'); $sessionProvider->persist(); return $this->redirectResponse('app.processor', array('processor' => 'dashboard')); }
/** * Handles login form processing * @param Request $request * @return mixed */ protected function handleLogin(Request $request) { $domain = $this->builder->auth()->adminDomain(); /** @var PasswordProvider $passwordProvider */ $passwordProvider = $domain->provider('password'); $data = $request->data(); $user = $passwordProvider->login($data->getRequired('username'), $data->getRequired('password')); if ($user === null) { return $this->getTemplate(array('loginFailed' => true)); } return $this->loggedInRedirect(); }
/** * Handles signup form processing * @param Request $request * @return mixed */ protected function handleSignup(Request $request) { $data = $request->data(); $validator = $this->getSignupValidator(); $result = $validator->validate($data->get()); if (!$result->isValid()) { return $this->getTemplate(array('signupResult' => $result, 'activeTab' => 'signUp')); } $domain = $this->builder->auth()->userDomain(); /** @var PasswordProvider $passwordProvider */ $passwordProvider = $domain->provider('password'); /** @var User $user */ $user = $this->userRepository()->create(); $user->email = $data->get('email'); $user->passwordHash = $passwordProvider->hash($data->get('password')); $user->save(); $domain->setUser($user, 'session'); /** @var SessionProvider $sessionProvider */ $sessionProvider = $domain->provider('session'); $sessionProvider->persist(); return $this->loggedInRedirect(); }