public function inscriptionAction() { $this->layout('layout/connexion'); /** @var EntityManager $em */ $em = $this->getServiceLocator()->get('Doctrine\\ORM\\EntityManager'); $form = new UtilisateurForm($em); $utilisateur = new Utilisateur(); $form->get('submit')->setAttribute('class', 'btn btn-primary btn-block')->setValue('Inscription'); $form->bind($utilisateur); $utilisateur->setRole(Utilisateur::DEFAULT_ROLE); /** @var Request $request */ $request = $this->getRequest(); if ($request->isPost()) { $form->setData($request->getPost()); if ($form->isValid()) { $utilisateur->setEncryptedPassword(Hash::compute('sha256', $utilisateur->getPassword())); $utilisateur->setDisabled(false); $em->persist($utilisateur); $em->flush(); $this->flashMessenger()->addSuccessMessage('Votre inscription a bien été prise en compte.<br/>Vous pouvez dès à présent vous connecter.'); $subject = 'Votre compte a bien été créé'; $viewMessage = new ViewModel(); $viewMessage->setTemplate('mail/utilisateur-nouveau')->setVariables(array('utilisateur' => $utilisateur))->setTerminal(true); $viewRender = $this->getServiceLocator()->get('ViewRenderer'); $message = $viewRender->render($viewMessage); $to = $utilisateur->getEmail(); $mailer = new Mailer($this->getServiceLocator()); $mailer->sendMail($subject, $message, $to); return $this->redirect()->toRoute('connexion'); } } $view = new ViewModel(); return $view->setVariables(array('form' => $form)); }
public function editAction() { $id_util = (int) $this->params()->fromRoute('id', 0); if (!$id_util) { return $this->redirect()->toRoute('utilisateur', array('action' => 'add')); } $utilisateur = $this->getEntityManager()->find('Application\\Entity\\Utilisateur', $id_util); if (!$utilisateur) { return $this->redirect()->toRoute('utilisateur', array('action' => 'index')); } $form = new UtilisateurForm(); $form->bind($utilisateur); $form->get('submit')->setAttribute('value', 'Edit'); $request = $this->getRequest(); if ($request->isPost()) { $form->setInputFilter($utilisateur->getInputFilter()); $form->setData($request->getPost()); if ($form->isValid()) { $this->getEntityManager()->flush(); // Redirect to list of utilisateurs return $this->redirect()->toRoute('utilisateur'); } } return array('id_util' => $id_util, 'form' => $form); }
public function modifierAction() { $routeId = (int) $this->params()->fromRoute('id'); $id = $routeId == 0 ? $this->identity()->getId() : $routeId; /** @var Utilisateur $utilisateur */ $utilisateur = $this->identity(); if ($utilisateur->getId() != $id && $utilisateur->getRole() != Utilisateur::ROLE_ADMINISTRATEUR) { $this->flashMessenger()->addErrorMessage('L\'utilisateur n\'existe pas.'); return $this->redirect()->toRoute('accueil'); } /** @var EntityManager $em */ $em = $this->getServiceLocator()->get('Doctrine\\ORM\\EntityManager'); /** @var Utilisateur $utilisateur */ $utilisateur = $em->getRepository('Application\\Entity\\Utilisateur')->find($id); if (is_null($utilisateur)) { $this->flashMessenger()->addErrorMessage('L\'utilisateur n\'existe pas.'); return $this->redirect()->toRoute('accueil'); } $form = new UtilisateurForm($em); $form->bind($utilisateur); /** @var Request $request */ $request = $this->getRequest(); if ($request->isPost()) { $post = $request->getPost(); $unchanged = false; if ($post['password'] == '' && $post['passwordConfirmation'] == '') { $unchanged = true; } $form->setData($post); if ($form->isValid()) { if (!$unchanged) { $utilisateur->setEncryptedPassword(Hash::compute('sha256', $utilisateur->getPassword())); } $em->flush(); $this->flashMessenger()->addSuccessMessage('L\'utilisateur a bien été modifié.'); $subject = 'Votre compte a été mis à jour'; $viewMessage = new ViewModel(); $viewMessage->setTemplate('mail/utilisateur-maj')->setVariables(array('user' => $utilisateur))->setTerminal(true); $viewRender = $this->getServiceLocator()->get('ViewRenderer'); $message = $viewRender->render($viewMessage); $to = $utilisateur->getEmail(); $mailer = new Mailer($this->getServiceLocator()); $mailer->sendMail($subject, $message, $to); return $this->redirect()->toRoute('utilisateur', array('action' => 'detail', 'id' => $id)); } } $view = new ViewModel(); return $view->setVariables(array('utilisateur' => $utilisateur, 'id' => $routeId, 'form' => $form)); }