Пример #1
0
 /**
  * @return \Zend\Http\Response|ViewModel
  */
 public function loginAction()
 {
     $data = $this->getRequest()->getPost();
     $form = new Form\LoginForm(null, $this->getServiceLocator());
     $flashMessenger = new FlashMessenger();
     if ($this->getRequest()->isPost()) {
         // If you used another name for the authentication service, change it here
         $form->setData($this->getRequest()->getPost());
         if ($form->isValid()) {
             /**
              * @var \User\Service\Auth $userAuth
              */
             $userAuth = $this->getServiceLocator()->get('\\User\\Service\\Auth');
             try {
                 $userAuth->authenticateEquals($data['email'], $data['password']);
                 $flashMessenger->addSuccessMessage('You\'re successfully logged in');
                 $session = new Container('location');
                 $location = $session->location;
                 if ($location) {
                     $session->getManager()->getStorage()->clear('location');
                     return $this->redirect()->toUrl($location);
                 }
                 return $this->redirect()->toRoute('home');
             } catch (AuthException $exception) {
                 $flashMessenger->addErrorMessage($exception->getMessage());
             }
         }
     }
     return new ViewModel(array('form' => $form, 'serviceLocator' => $this->getServiceLocator()));
 }
Пример #2
0
 public function seedMessages()
 {
     $helper = new FlashMessenger();
     $helper->setSessionManager($this->session);
     $helper->addMessage('foo');
     $helper->addMessage('bar');
     $helper->addInfoMessage('bar-info');
     $helper->addSuccessMessage('bar-success');
     $helper->addErrorMessage('bar-error');
     unset($helper);
 }
Пример #3
0
 /**
  * @return \Zend\Http\Response|ViewModel
  */
 public function changePasswordAction()
 {
     $currentPasswordElement = false;
     if ($this->identity()->getUser()->getEmail()) {
         $form = new ChangePasswordForm(null, ['serviceLocator' => $this->getServiceLocator()]);
         $currentPasswordElement = true;
     } else {
         $form = new ChangePasswordAndEmailForm(null, ['serviceLocator' => $this->getServiceLocator()]);
     }
     $request = $this->getRequest();
     if ($request->isPost()) {
         $form->setData($request->getPost());
         if ($form->isValid()) {
             $flashMessenger = new FlashMessenger();
             /** @var \User\Service\Auth $userAuth */
             $userAuth = $this->getServiceLocator()->get('\\User\\Service\\Auth');
             try {
                 $objectManager = $this->getServiceLocator()->get('Doctrine\\ORM\\EntityManager');
                 /** @var \User\Entity\User $user */
                 $user = $objectManager->getRepository('User\\Entity\\User')->find($this->identity()->getUser()->getId());
                 if ($this->identity()->getUser()->getEmail()) {
                     $userAuth->checkCredentials($this->identity()->getUser()->getEmail(), $form->getData()['currentPassword']);
                 } else {
                     $user->setEmail($form->getData()['email']);
                 }
                 $objectManager->persist($user);
                 $objectManager->flush();
                 $userAuth->generateEquals($user, $form->getData()['password']);
                 $flashMessenger->addSuccessMessage("You have successfully changed your password!");
                 return $this->redirect()->toRoute('home');
             } catch (AuthException $exception) {
                 $flashMessenger->addErrorMessage($exception->getMessage());
             }
         }
     }
     return new ViewModel(['form' => $form, 'currentPasswordElement' => $currentPasswordElement]);
 }
Пример #4
0
 /**
  * @return \Zend\Http\Response|ViewModel
  * @throws \Exception
  */
 public function addAction()
 {
     $form = $this->getServiceLocator()->get('Comment\\Service\\Comment')->createForm();
     // for POST data
     if ($this->getRequest()->isPost()) {
         $data = $this->getRequest()->getPost();
         // for GET (or query string) data
         if ($this->getRequest()->getQuery('alias') && ($entityId = intval($this->getRequest()->getQuery('id')))) {
             $data->set('alias', $this->getRequest()->getQuery('alias'));
             $data->set('entityId', $this->getRequest()->getQuery('id'));
         }
         if (!isset($data['alias']) || !isset($data['entityId'])) {
             $this->getResponse()->setStatusCode(400);
             throw new \Exception('Bad request');
         }
         $comment = $this->getServiceLocator()->get('Comment\\Service\\Comment')->add($form, $data);
         $flashMessenger = new FlashMessenger();
         if ($comment) {
             $flashMessenger->addSuccessMessage('Comment created');
             if (!$this->getRequest()->isXmlHttpRequest()) {
                 if ($this->getRequest()->getHeader('Referer')) {
                     return $this->redirect()->toUrl($this->getRequest()->getHeader('Referer')->getUri());
                 } else {
                     return $this->redirect()->toUrl('/');
                 }
             }
             return;
         } else {
             $flashMessenger->addErrorMessage('Comment is not created');
         }
     }
     $viewModel = new ViewModel(['form' => $form, 'title' => 'Add comment']);
     $viewModel->setTerminal($this->getRequest()->isXmlHttpRequest());
     return $viewModel;
 }