28 nov. 2022 | Connexion

Blog

Symfony (5, 6) : suppression utilisateur - Erreur

Symfony (5, 6) : suppression utilisateur - Erreur

Développement web
Symfony PHP

il y a 5 mois citizenz7 0 commentaire 1333 lectures

Dans la fonction Delete() de UserController.php vous avez quelque chose comme ça :

#[Route('/{id}', name: 'app_user_delete', methods: ['POST'])]
    public function delete(Request $request, User $user, UserRepository $userRepository): Response
    {
        if ($this->isCsrfTokenValid('delete'.$user->getId(), $request->request->get('_token'))) {
            $userRepository->remove($user);
        }
        return $this->redirectToRoute('app_user_index', [], Response::HTTP_SEE_OTHER);
    }

Il suffit donc d'ajouter un setToken(null) lors de la suppression du user (avec un flashmessage en prime) :

 #[Route('/{id}', name: 'app_user_delete', methods: ['POST'])]
    public function delete(Request $request, User $user, UserRepository $userRepository): Response
    {
        if ($this->isCsrfTokenValid('delete'.$user->getId(), $request->request->get('_token'))) {
            $this->container->get('security.token_storage')->setToken(null);
            $userRepository->remove($user, true);
        }
       $this->addFlash('deleted','Votre compte a été supprimé.');
        return $this->redirectToRoute('app_home', [], Response::HTTP_SEE_OTHER);
    }

0 commentaire


Nb d'articles actifs : 40 | Nb de commentaires : 16 | Nb de catégories : 7 | Nb de tags : 32 | Nb total de lectures : 118 912
2022 citizenz.info • Some rights reserved GPLv3 • Version 3.3.4

Ma parole, des engins comme vous, ça devrait être fourni avec une notice ! (Léodagan, Kaamelott, Livre I, La potion de fécondité)