Bonjour à tous,
Je suis ultra-débutant. Je crée un projet avec Symfony 6.3 et PHP 8.2
J'ai un controller RegistrationController,
une classe RegistrationFormType::class
une entité User avec les règles de validation en annotation
Un template pour le formulaire de registration
Dans le controller je hash le mot de passe reçu de l'utilisateur et je persist et flush avec l'entity manager
Tout ça fonctionne
J'ai installé un dashboard (easyadmin)
Le bouton créer un user m'affiche un formulaire basé sur l'entité user
À la soumission les données sont bien enregistrées, mais le mot de passe est en clair dans la bdd (mySQL)
Pour parer, faute de mieux, et comme je débute j'ai*:
Créer un nouveau bouton dans le dashbord avec une nouvelle action comme suit
J'ai également déaffiché le bouton original
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 $newUser = Action::new('newuser', 'Créer', 'fas fa-user') ->displayAsLink('register') ->linkToRoute('app_register') ->createAsGlobalAction(); //Affiche-Désaffiche les actions return $actions ->add(Crud::PAGE_INDEX, $newUser) ->disable(Action::NEW )
Ici l'action renvoie la route app_register, celle du controleur inital: RegistrationController,
ça fonctionne également
Jaimerais savoir comment hasher le mot de passe en utilisant uniquement le Usercrudcontroller fournie au lieu de registrationController fait maison
En effet, le problème est identique avec l'action EDIT. En passant par le crudController le mot de passe s'il est modifié reste en clair dans la bdd
J'ai essayé d'injecter UserPasswordHasherInterface $userPasswordHasher dans un conctructeur de mon crudController
tenté de créer un bouton et une nouvelle action edit dans la page CRUD::PAGE_EDIT, et utilisé la methode ->linkToCrudAction('myFunction');
défini une fonction dans le crudController (myFunction() afin de hasher le mot de passe
ça ne fonctionne pas
Merci pour ceux qui tenteront de me répondre, car la doc officielle n'explique pas comment faire.
J'espère avoir été clair
Partager