public function loginAction() { if (!$this->logged->boolLogged) { $form = new LoginForm(); $request = $this->getRequest(); if ($request->isPost()) { $login = new User(); $login->setInputs(['nick', 'heslo']); $form->setInputFilter($login->getInputFilter()); $form->setData($request->getPost()); if ($form->isValid()) { $table = $this->getUserTable(); $data = array('nick' => $form->getData()['nick'], 'heslo' => $form->getData()['heslo']); $login->exchangeArray($data); if ($user = $table->login($login)) { foreach ($user as $u) { $this->logged->nick = $u->nick; $this->logged->admin = $u->admin; $this->logged->boolLogged = true; return $this->redirect()->toRoute('application/default', array('controller' => 'profil')); } } else { $error = $this->msg->get('login.error.invalidCredentials'); } } else { $error = $this->msg->get('form.error.invalidData'); } } return array('form' => $form, 'error' => isset($error) ? $error : null, 'menu' => new Menu($this->url()->fromRoute("application"), array("login", "registrace", "obnovit" => "zapomenuté heslo"), "login")); } else { return $this->redirect()->toRoute('application/default', array('controller' => 'profil')); } }
public function loginAction() { $user = ApplicationManager::getInstance($this->getServiceLocator())->getCurrentUser(); if ($user) { return $this->redirect()->toRoute('home'); } $request = $this->getRequest(); $form = new LoginForm(); if ($request->isPost()) { $form->setData($request->getPost()); if ($form->isValid()) { $data = $form->getData(); $identity = $data['email']; $password = $data['password']; $result = AuthenticationManager::getInstance($this->getServiceLocator())->authenticate($identity, $password); if (in_array($result->getCode(), array(Result::FAILURE_IDENTITY_NOT_FOUND, Result::FAILURE_CREDENTIAL_INVALID))) { $form->setMessages(array('email' => array('Нeправильный Email или пароль'))); } if ($result->isValid()) { return $this->redirect()->toRoute('dashboard'); } } else { $form->setMessages(array('email' => array('Нeправильный Email или пароль'))); } } $viewModel = new ViewModel(array('form' => $form)); $viewModel->setTemplate('layout/login-layout'); $viewModel->setTerminal(true); return $viewModel; }
public function logInAction() { $request = $this->getRequest(); $form = new LoginForm(); $loginFailed = false; if ($request->isPost()) { // Check if the form and provided values are valid, and redirect if so $form->setData($request->getPost()); if ($form->isValid()) { $data = $form->getData(); /** @var Adapter $auth */ $auth = $this->serviceLocator->get('auth'); $authAdapter = $auth->getAdapter(); $authAdapter->setIdentity($data['username']); $authAdapter->setCredential($data['password']); $result = $auth->authenticate(); if ($result->isValid()) { return $this->redirect()->toRoute('application/game'); } else { $loginFailed = true; } } } return new ViewModel(['form' => $form, 'loginFailed' => $loginFailed]); }
public function indexAction() { $request = $this->getRequest(); $view = new ViewModel(); $loginForm = new LoginForm('loginForm'); $loginForm->setInputFilter(new LoginFilter()); if ($request->isPost()) { $data = $request->getPost(); $loginForm->setData($data); if ($loginForm->isValid()) { $data = $loginForm->getData(); $userPassword = new UserPassword(); $encyptPass = $userPassword->create($data['password']); $this->getAuthService()->getAdapter()->setIdentity($data['email'])->setCredential($encyptPass); $result = $this->getAuthService()->authenticate(); if ($result->isValid()) { $session = new Container('User'); $session->offsetSet('email', $data['email']); $this->flashMessenger()->addMessage(array('success' => 'Login Success.')); // Redirect to page after successful login } else { $this->flashMessenger()->addMessage(array('error' => 'invalid credentials.')); // Redirect to page after login failure } return $this->redirect()->tourl('/application/login'); // Logic for login authentication } else { $errors = $loginForm->getMessages(); //prx($errors); } } $view->setVariable('loginForm', $loginForm); return $view; }
public function loginAction() { $form = new LoginForm(); $form->get('submit')->setValue('Login'); /** @var \Zend\Http\PhpEnvironment\Request $request */ $request = $this->getRequest(); $referer = $request->getHeader('referer'); if ($referer === false) { return $this->redirect()->toRoute('home'); } else { $referer_path = $referer->uri()->getPath(); } $current_path = $request->getUri()->getPath(); $_SESSION['referer_path'] = $referer_path; if ($request->isPost()) { $validate = new LoginFilter(); $form->setInputFilter($validate->getInputFilter()); $form->setData($request->getPost()); if ($form->isValid()) { $validate->exchangeArray($form->getData()); $ident = $validate->getInputFilter()->getValue('name'); $password = $validate->getInputFilter()->getValue('password'); $auth = new AuthAccess(); $authenticated = $auth->isAuthenticated($ident, $password); if ($authenticated) { $redirect_path = $_SESSION['referer_path']; if ($redirect_path == '/') { $this->redirect()->toRoute('home'); } elseif ($redirect_path == $current_path) { $this->redirect()->toRoute('home'); } $redirect_route = str_replace('/', '', $redirect_path); $this->redirect()->toRoute($redirect_route); } else { $this->redirect()->toRoute('login'); } } } return array('form' => $form); }
public function loginAction() { $user = $this->identity(); $form = new LoginForm(); $form->get('submit')->setValue('Login'); $messages = null; $request = $this->getRequest(); if ($request->isPost()) { $registerFormFilters = new Register(); $form->setInputFilter($registerFormFilters->getInputFilter()); $form->setData($request->getPost()); if ($form->isValid()) { $data = $form->getData(); $sm = $this->getServiceLocator(); $dbAdapter = $sm->get('Zend\\Db\\Adapter\\Adapter'); $config = $this->getServiceLocator()->get('Config'); $staticSalt = $config['static_salt']; $authAdapter = new AuthAdapter($dbAdapter, 'registration', 'usr_name', 'usr_password', "MD5(CONCAT('{$staticSalt}', ?, usr_password_salt)) AND usr_active = 1"); $authAdapter->setIdentity($data['usr_name'])->setCredential($data['usr_password']); $auth = new AuthenticationService(); // or prepare in the globa.config.php and get it from there. Better to be in a module, so we can replace in another module. // $auth = $this->getServiceLocator()->get('Zend\Authentication\AuthenticationService'); // $sm->setService('Zend\Authentication\AuthenticationService', $auth); // You can set the service here but will be loaded only if this action called. $result = $auth->authenticate($authAdapter); switch ($result->getCode()) { case Result::FAILURE_IDENTITY_NOT_FOUND: // do stuff for nonexistent identity break; case Result::FAILURE_CREDENTIAL_INVALID: // do stuff for invalid credential break; case Result::SUCCESS: $storage = $auth->getStorage(); $storage->write($authAdapter->getResultRowObject(null, 'usr_password')); $time = 1209600; // 14 days 1209600/3600 = 336 hours => 336/24 = 14 days // if ($data['rememberme']) $storage->getSession()->getManager()->rememberMe($time); // no way to get the session if ($data['rememberme']) { $sessionManager = new \Zend\Session\SessionManager(); $sessionManager->rememberMe($time); } break; default: // do stuff for other failure break; } foreach ($result->getMessages() as $message) { $messages .= "{$message}\n"; } } } return new ViewModel(array('form' => $form, 'messages' => $messages)); }