Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace App\Controller\admin;
- use App\Entity\User;
- use App\Form\ProfileType;
- use App\Form\ResetPasswordType;
- use App\Repository\ProfileRepository;
- use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
- use Symfony\Component\HttpFoundation\Request;
- use Symfony\Component\HttpFoundation\Response;
- use Symfony\Component\Routing\Annotation\Route;
- use Symfony\Component\Security\Core\User\UserInterface;
- use Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface;
- use Symfony\Component\Form\FormError;
- use Symfony\Component\Security\Core\Security;
- /**
- * @Route("/admin/profile")
- */
- class ProfileController extends AbstractController
- {
- private $passwordEncoder;
- public function __construct(UserPasswordEncoderInterface $passwordEncoder)
- {
- $this->passwordEncoder = $passwordEncoder;
- }
- /**
- * @Route("/", name="admin.profile.index", methods={"GET"})
- */
- public function index(ProfileRepository $profileRepository, UserInterface $user): Response
- {
- return $this->render('admin/profile/index.html.twig', [
- 'profile' => $profileRepository->findById($user),
- ]);
- }
- /**
- * @Route("/{slug}/edit", name="admin.profile.edit", methods={"GET","POST"})
- */
- // UserInterface $user,
- public function edit(Request $request, User $user): Response
- {
- $em = $this->getDoctrine()->getManager();
- $form = $this->createForm(ResetPasswordType::class, $user);
- $form->handleRequest($request);
- if ($form->isSubmitted() && $form->isValid()) {
- $passwordEncoder = $this->get('security.password_encoder');
- $password = $request->request->get('user')['password'];
- // Si l'ancien mot de passe est bon
- if ($passwordEncoder->isPasswordValid($user, $password)) {
- $newEncodedPassword = $passwordEncoder->encodePassword($user, $user->getPlainPassword());
- $user->setPassword($newEncodedPassword);
- $em->persist($user);
- $em->flush();
- $this->addFlash('notice', 'Votre mot de passe à bien été changé !');
- return $this->redirectToRoute('admin.profile.index');
- } else {
- $form->addError(new FormError('Ancien mot de passe incorrect'));
- }
- }
- return $this->render('admin/profile/edit.html.twig', [
- 'profile' => $user,
- 'form' => $form->createView(),
- ]);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement