コード例 #1
0
ファイル: Module.php プロジェクト: marksteward/octoknit
 public function loginFormView($event)
 {
     $form = new LoginForm();
     $form->get('submit')->setValue('Login');
     $viewModel = $event->getViewModel();
     $viewModel->setVariables(array('loginForm' => $form));
 }
コード例 #2
0
 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()));
 }