예제 #1
0
 public function indexAction()
 {
     $form = new FormLogin();
     $error = false;
     $request = $this->getRequest();
     if ($request->isPost()) {
         $form->setData($request->getPost());
         if ($form->isValid()) {
             $data = $request->getPost()->toArray();
             $auth = new AuthenticationService();
             $sessionStorage = new SessionStorage('User');
             $auth->setStorage($sessionStorage);
             $authAdapter = $this->getServiceLocator()->get('User\\Auth\\Adapter');
             $authAdapter->setUsername($data['email']);
             $authAdapter->setPassword($data['password']);
             $result = $auth->authenticate($authAdapter);
             if ($result->isValid()) {
                 $sessionStorage->write($auth->getIdentity()['user'], null);
                 return $this->redirect()->toRoute('user-admin/default', ['controller' => 'users']);
             } else {
                 $error = true;
             }
         }
     }
     return new ViewModel(['form' => $form, 'error' => $error]);
 }
예제 #2
0
파일: Module.php 프로젝트: noikiy/zend_test
 public function getServiceConfig()
 {
     return array('invokables' => array('zfcuser_user_service' => 'User\\Service\\User'), 'factories' => array('zfcuser_login_form' => function ($sm) {
         $options = $sm->get('zfcuser_module_options');
         $form = new Form\Login(null, $options);
         $form->setInputFilter(new Form\LoginFilter($options));
         return $form;
     }, 'zfcuser_register_form' => function ($sm) {
         $options = $sm->get('zfcuser_module_options');
         $form = new Form\Register(null, $options);
         //$form->setCaptchaElement($sm->get('zfcuser_captcha_element'));
         $form->setInputFilter(new Form\RegisterFilter(new Validator\NoRecordExists(array('mapper' => $sm->get('zfcuser_user_mapper'), 'key' => 'email')), new Validator\NoRecordExists(array('mapper' => $sm->get('zfcuser_user_mapper'), 'key' => 'username')), $options));
         return $form;
     }, 'zfcuser_change_password_form' => function ($sm) {
         $options = $sm->get('zfcuser_module_options');
         $form = new Form\ChangePassword(null, $sm->get('zfcuser_module_options'));
         $form->setInputFilter(new Form\ChangePasswordFilter($options));
         return $form;
     }));
 }
예제 #3
0
 public function getServiceConfig()
 {
     return array('aliases' => array('user_doctrine_em' => 'doctrine.documentmanager.odm_default'), 'invokables' => array('User\\Authentication\\Adapter\\Db' => 'User\\Authentication\\Adapter\\Db', 'User\\Authentication\\Storage\\Db' => 'User\\Authentication\\Storage\\Db', 'User\\Form\\Login' => 'User\\Form\\Login', 'user_user_service' => 'User\\Service\\User', 'user_register_form_hydrator' => 'Zend\\Stdlib\\Hydrator\\ClassMethods'), 'factories' => array('user_remember' => function ($sm) {
         return new \User\Authentication\Adapter\RememberMe('user_remember');
     }, 'user_module_options' => function ($sm) {
         $config = $sm->get('Config');
         return new Options\ModuleOptions(isset($config['user']) ? $config['user'] : array());
     }, 'user_auth_service' => function ($sm) {
         return new \Zend\Authentication\AuthenticationService($sm->get('User\\Authentication\\Storage\\Db'), $sm->get('User\\Authentication\\Adapter\\AdapterChain'));
     }, 'User\\Authentication\\Adapter\\AdapterChain' => 'User\\Authentication\\Adapter\\AdapterChainServiceFactory', 'user_login_form' => function ($sm) {
         $options = $sm->get('user_module_options');
         $form = new Form\Login(null, $options);
         $form->setInputFilter(new Form\LoginFilter($options));
         return $form;
     }, 'user_register_form' => function ($sm) {
         $options = $sm->get('user_module_options');
         $form = new Form\Register(null, $options);
         $form->setInputFilter(new Form\RegisterFilter(new Validator\NoRecordExists(array('mapper' => $sm->get('user_user_mapper'), 'key' => 'email')), new Validator\NoRecordExists(array('mapper' => $sm->get('user_user_mapper'), 'key' => 'username')), $options));
         return $form;
     }, 'user_change_password_form' => function ($sm) {
         $options = $sm->get('user_module_options');
         $form = new Form\ChangePassword(null, $sm->get('user_module_options'));
         $form->setInputFilter(new Form\ChangePasswordFilter($options));
         return $form;
     }, 'user_change_email_form' => function ($sm) {
         $options = $sm->get('user_module_options');
         $form = new Form\ChangeEmail(null, $sm->get('user_module_options'));
         $form->setInputFilter(new Form\ChangeEmailFilter($options, new Validator\NoRecordExists(array('mapper' => $sm->get('user_user_mapper'), 'key' => 'email'))));
         return $form;
     }, 'user_user_hydrator' => function ($sm) {
         $hydrator = new \Zend\Stdlib\Hydrator\ClassMethods();
         return $hydrator;
     }, 'user_user_mapper' => function ($sm) {
         return new \User\Mapper\UserMongoDB($sm->get('user_doctrine_em'), $sm->get('user_module_options'));
     }));
 }
 public function loginAction()
 {
     if ($this->authenticationService->getIdentity()) {
         return $this->redirect()->toRoute('home');
     }
     $form = new Login($this->getServiceLocator()->get('MvcTranslator'));
     $messages = [];
     $this->layout('layout/1-col');
     if ($this->getRequest()->isPost()) {
         $post = $this->params()->fromPost();
         $form->setData($post);
         if ($form->isValid()) {
             $data = $form->getData();
             $adapter = $this->getAuthenticationService()->getAdapter();
             $storage = $this->getAuthenticationService()->getStorage();
             $adapter->setIdentity($data['email']);
             $adapter->setCredential($data['password']);
             $storage->setRememberMe($data['remember']);
             $result = $this->getAuthenticationService()->authenticate();
             if ($result->isValid()) {
                 $user = $this->getUserManager()->getUser($result->getIdentity()->getId());
                 $user->updateLoginData();
                 $this->getUserManager()->persist($user);
                 $this->getUserManager()->flush();
                 $url = $this->params()->fromQuery('redir', $this->referer()->fromStorage());
                 return $this->redirect()->toUrl($url);
             }
             $messages = $result->getMessages();
         }
     } else {
         $this->referer()->store();
     }
     $view = new ViewModel(['form' => $form, 'errorMessages' => $messages, 'redir' => $this->params()->fromQuery('redir')]);
     $view->setTemplate('authentication/login');
     return $view;
 }