Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace SoftUniBlogBundle\Controller\Admin;
- use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
- use SoftUniBlogBundle\Entity\Role;
- use SoftUniBlogBundle\Entity\User;
- use SoftUniBlogBundle\Form\UserEditType;
- use SoftUniBlogBundle\Form\UserType;
- use Symfony\Bundle\FrameworkBundle\Controller\Controller;
- use Symfony\Component\HttpFoundation\Request;
- /**
- * @Route("/admin/users")
- *
- * Class UserController
- * @package SoftUniBlogBundle\Controller
- */
- class UserController extends Controller
- {
- /**
- * @Route("/", name="admin_users")
- * @return \Symfony\Component\HttpFoundation\Response
- */
- public function listUsers()
- {
- $users = $this->getDoctrine()->getRepository(User::class)->findAll();
- return $this->render("admin/user/list.html.twig", ['users'=>$users]);
- }
- /**
- * @Route("/edit/{id}", name="admin_user_edit")
- *
- * @param $id
- * @param Request $request
- * @return \Symfony\Component\HttpFoundation\Response
- */
- public function editUser($id, Request $request)
- {
- $user =$this->getDoctrine()->getRepository(User::class)->find($id);
- if($user === null){
- return $this->redirectToRoute("admin_users");
- }
- $form =$this->createForm(UserEditType::class, $user);
- $oldPassword =$user->getPassword();
- $form->handleRequest($request);
- if ($form->isValid()){
- if (empty($user->getPassword())) {
- $user->setPassword($oldPassword);
- }
- else{
- $password = $this->get('security.password_encoder')
- ->encodePassword($user,$user->getPassword());
- $user->setPassword($password);
- }
- $roles =[];
- $roleRepo =$this->getDoctrine()->getRepository(Role::class);
- foreach($user->getRoles() as $roleName){
- $roles[] =$roleRepo->findOneBy(['name' =>$roleName]);
- }
- $user->setRoles($roles);
- $em=$this->getDoctrine()->getEntityManager();
- $em->persist($user);
- $em->flush();
- return $this->redirectToRoute("admin_users");
- }
- return $this->render('admin/user/edit.html.twig', ['user' =>$user,
- 'form'=> $form->createView()]);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement