Bonjour,
Voila je souhaite faire quelque chose pour améliorer la sécurité de mon code.
Je réalise un petit outil pour que les écoles de mon village puissent gérer les cours en ligne et garder un contact avec leurs élèves.
Pour ce faire, j'ai :
une entity Users qui contient :
- id
- firstname
- ...
Une entity Schools, qui contient :
- id
- name
- ...
- director (relation OneToOne avec l'entité Users)
Ce que je veux
Je souhaite que le directeur connecté puisse visualiser / modifier le profil de son école (il s'agit d'un formulaire)
exemple de lien : director/school-profil
Mais que celui-ci ne puisse valider que le profil de son école et pas d'une autre. C'est pourquoi je veux éviter de faire passer l'ID de l'école concernée dans l'URL (ex. : director/school-profil/3)
Ce que je fais
Dans mon Controller :
/**
* @Route("/school-profile", name="schoolprofile")
*/
public function schoolprofile(Request $request, SchoolsRepository $schoolRepo, EntityManagerInterface $manager){
// On récupère l'ID de l'user connecté
$recupuser = $this->getUser();
// On cherche à filtrer l'école concernée
$schoolRepo->findOneBy([
'director' => $recupuser
]);
// On traite le formulaire
$form = $this->createForm(SchoolType::class);
$form->handleRequest($request);
if($form->isSubmitted() && $form->isValid()) {
$manager->persist($form);
$manager->flush();
}
return $this->render('director/school_profile.html.twig', [
'schoolForm' => $form->createView()
]);
}
Ce que j'obtiens
Aucune page d'erreur. J'ai bien la page contenant le formulaire, mais celui-ci est vide.
Merci par avance pour votre aide,
Grub