Advertisement
Guest User

Untitled

a guest
Nov 9th, 2016
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.32 KB | None | 0 0
  1. <?php
  2.  
  3.  
  4.  
  5. namespace SoftUniBlogBundle\Controller\Admin;
  6.  
  7.  
  8. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
  9. use SoftUniBlogBundle\Entity\Role;
  10. use SoftUniBlogBundle\Entity\User;
  11. use SoftUniBlogBundle\Form\UserEditType;
  12. use SoftUniBlogBundle\Form\UserType;
  13. use Symfony\Bundle\FrameworkBundle\Controller\Controller;
  14. use Symfony\Component\HttpFoundation\Request;
  15.  
  16. /**
  17. * @Route("/admin/users")
  18. *
  19. * Class UserController
  20. * @package SoftUniBlogBundle\Controller
  21. */
  22. class UserController extends Controller
  23. {
  24. /**
  25. * @Route("/", name="admin_users")
  26. * @return \Symfony\Component\HttpFoundation\Response
  27. */
  28. public function listUsers()
  29. {
  30. $users = $this->getDoctrine()->getRepository(User::class)->findAll();
  31. return $this->render("admin/user/list.html.twig", ['users'=>$users]);
  32.  
  33. }
  34.  
  35. /**
  36. * @Route("/edit/{id}", name="admin_user_edit")
  37. *
  38. * @param $id
  39. * @param Request $request
  40. * @return \Symfony\Component\HttpFoundation\Response
  41. */
  42. public function editUser($id, Request $request)
  43. {
  44. $user =$this->getDoctrine()->getRepository(User::class)->find($id);
  45. if($user === null){
  46. return $this->redirectToRoute("admin_users");
  47. }
  48.  
  49. $form =$this->createForm(UserEditType::class, $user);
  50. $oldPassword =$user->getPassword();
  51. $form->handleRequest($request);
  52.  
  53.  
  54. if ($form->isValid()){
  55. if (empty($user->getPassword())) {
  56. $user->setPassword($oldPassword);
  57. }
  58. else{
  59. $password = $this->get('security.password_encoder')
  60. ->encodePassword($user,$user->getPassword());
  61. $user->setPassword($password);
  62. }
  63. $roles =[];
  64. $roleRepo =$this->getDoctrine()->getRepository(Role::class);
  65. foreach($user->getRoles() as $roleName){
  66. $roles[] =$roleRepo->findOneBy(['name' =>$roleName]);
  67. }
  68. $user->setRoles($roles);
  69.  
  70. $em=$this->getDoctrine()->getEntityManager();
  71. $em->persist($user);
  72. $em->flush();
  73.  
  74. return $this->redirectToRoute("admin_users");
  75. }
  76.  
  77.  
  78. return $this->render('admin/user/edit.html.twig', ['user' =>$user,
  79. 'form'=> $form->createView()]);
  80.  
  81.  
  82. }
  83.  
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement