示例#1
0
 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;
 }
示例#3
0
 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]);
 }
示例#4
0
 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));
 }