%PDF- %PDF-
Direktori : /home/emtnaeewxm/www/src/Gestion/UserBundle/Controller/ |
Current File : /home/emtnaeewxm/www/src/Gestion/UserBundle/Controller/UserController.php |
<?php namespace Gestion\UserBundle\Controller; use Symfony\Component\HttpFoundation\Request; use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; use Gestion\UserBundle\Entity\User; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security; /** * User controller. * * @Route("/admin/user") * @Security("has_role('ROLE_ADMIN')") */ class UserController extends Controller { /** * Lists all User entities. * * @Route("/", name="user_index") * @Method({"GET", "POST"}) */ public function indexAction(Request $request) { $em = $this->getDoctrine()->getManager(); $paginator = $this->get('knp_paginator'); $users = $paginator->paginate( $em->getRepository('GestionUserBundle:User')->findAll(), /* query NOT result */ $request->query->getInt('page', 1)/* page number */, 10/* limit per page */ ); return $this->render('@GestionUser/user/index.html.twig', array( 'users' => $users, )); } /** * Creates a new User entity. * * @Route("/new", name="user_new") * @Method({"GET", "POST"}) */ public function newAction(Request $request) { $user = new User(); $form = $this->createForm('Gestion\UserBundle\Form\UserType', $user); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { $data = $request->request->all(); $user->setPassword($this->hashPassword($data['user']['password'], $user)); $em = $this->getDoctrine()->getManager(); $em->persist($user); $em->flush(); $this->addFlash('success', 'Nouvel utilisateur ajouté avec succès.'); return $this->redirectToRoute('user_show', array('id' => $user->getId())); } return $this->render('@GestionUser/user/new.html.twig', array( 'user' => $user, 'form' => $form->createView(), )); } /** * Finds and displays a User entity. * * @Route("/{id}", name="user_show") * @Method("GET") */ public function showAction(User $user) { $deleteForm = $this->createDeleteForm($user); return $this->render('@GestionUser/user/show.html.twig', array( 'user' => $user, 'delete_form' => $deleteForm->createView(), )); } /** * Displays a form to edit an existing User entity. * * @Route("/{id}/edit", name="user_edit") * @Method({"GET", "POST"}) */ public function editAction(Request $request, User $user) {$deleteForm = $this->createDeleteForm($user); $editForm = $this->createForm('Gestion\UserBundle\Form\UserEditType', $user); $editForm->handleRequest($request); if ($editForm->isSubmitted() && $editForm->isValid()) { $data = $request->request->all(); if (!empty($data['user_edit']['passwordEdit'])) { $user->setPassword($this->hashPassword($data['user_edit']['passwordEdit'], $user)); } $em = $this->getDoctrine()->getManager(); $em->persist($user); $em->flush(); $this->addFlash('success', 'Utilisateur modifié avec succès.'); return $this->redirectToRoute('user_show', array('id' => $user->getId())); } return $this->render('@GestionUser/user/edit.html.twig', array( 'user' => $user, 'edit_form' => $editForm->createView(), 'delete_form' => $deleteForm->createView(), )); } /** * Deletes a User entity. * * @Route("/{id}/delete", name="user_delete") * @Method("DELETE") */ public function deleteAction(Request $request, User $user) { $form = $this->createDeleteForm($user); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { $em = $this->getDoctrine()->getManager(); $em->remove($user); $em->flush(); $this->addFlash('success', 'Utilisateur supprimé avec succès.'); } return $this->redirectToRoute('user_index'); } /** * Deletes a User entity. * * @Route("/{username}/edit-password", name="user_password") * @Method({"GET", "POST"}) */ public function modifPasswordAction(Request $request, User $user) { $connected_user = $this->getUser(); if ($user->getId() != $connected_user->getId()) { throw $this->createAccessDeniedException('Vous n\'êtes pas autorisé à accéder à cette page.'); } $passwordForm = $this->createForm('Gestion\UserBundle\Form\UserPasswordType', $user); $passwordForm->handleRequest($request); if ($passwordForm->isSubmitted() && $passwordForm->isValid()) { $data = $request->request->all(); $user->setPassword($this->hashPassword($data['user_password']['password'], $user)); $em = $this->getDoctrine()->getManager(); $em->persist($user); $em->flush(); $this->addFlash('success', 'Mot de passe modifié avec succès.'); } return $this->render('@GestionUser/user/password.html.twig', array( 'user' => $user, 'password_form' => $passwordForm->createView(), )); } /** * Creates a form to delete a User entity. * * @param User $user The User entity * * @return \Symfony\Component\Form\Form The form */ private function createDeleteForm(User $user) { return $this->createFormBuilder() ->setAction($this->generateUrl('user_delete', array('id' => $user->getId()))) ->setMethod('DELETE') ->getForm(); } /** * * @param STRING * @return STRING */ private function hashPassword($paswordClear, $user) { $encoder = $this->container->get('security.password_encoder'); return $encoder->encodePassword($user, $paswordClear); } }