public function loginFormView($event) { $form = new LoginForm(); $form->get('submit')->setValue('Login'); $viewModel = $event->getViewModel(); $viewModel->setVariables(array('loginForm' => $form)); }
public function loginAction() { if ($user = $this->identity()) { return $this->redirect()->toRoute($this->getOptions()->getLoginRedirectRoute()); } $form = new LoginForm(); $form->get('submit')->setValue('Entrar'); $messages = null; $request = $this->getRequest(); if ($request->isPost()) { $form->setInputFilter(new LoginFilter($this->getServiceLocator())); $form->setData($request->getPost()); if ($form->isValid()) { $data = $form->getData(); $authService = $this->getServiceLocator()->get('Zend\\Authentication\\AuthenticationService'); $adapter = $authService->getAdapter(); $login = $request->getPost('login'); $usernameOrEmail = $data['usernameOrEmail']; if ($user = $this->getEntityManager()->getRepository('CsnUser\\Entity\\User')->findOneBy(array('email' => $usernameOrEmail))) { $data['usernameOrEmail'] = $user->getUsername(); // Set username to the input array in place of the email } $adapter->setIdentityValue($data['usernameOrEmail']); $adapter->setCredentialValue($data['password']); $authResult = $authService->authenticate(); if ($authResult->isValid()) { $identity = $authResult->getIdentity(); $authService->getStorage()->write($identity); $time = 1209600; // 14 days = 1209600/3600 = 336 hours => 336/24 if ($data['rememberme']) { $sessionManager = new \Zend\Session\SessionManager(); $sessionManager->rememberMe($time); } return $this->redirect()->toRoute($this->getOptions()->getLoginRedirectRoute()); } foreach ($authResult->getMessages() as $message) { $messages .= "{$message}\n"; } } } return new ViewModel(array('error' => 'Suas credenciais de autenticação não são válidos', 'form' => $form, 'messages' => $messages, 'navMenu' => $this->getOptions()->getNavMenu())); }