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; }