resop icon indicating copy to clipboard operation
resop copied to clipboard

User system refacto

Open nikophil opened this issue 4 years ago • 0 comments

Login

  • [x] Possibilité de se connecter uniquement avec un seul type d'utilisateur \App\Entity\User
    • [x] mettre à jour le fichier security.yaml pour ne plus pouvoir se logger avec l'organization
    • [x] supprimer l'authenticator OrganizationLoginFormAuthenticator
    • [x] Enlever l'interface UserInterface sur la classe Organization et toutes les méthodes qui en découlent + enlever les champs password et plainPassword
    • [x] Update le schéma de la table organizations pour enlever le champ password
  • [x] Repasser partout où AbstractController::getUser() + Security::getUser() + app.user (twig) est censé renvoyer une organization, afin de renvoyer l'organization contextualisée
  • [x] Mettre à jour le UserLoginFormAuthenticator:
    • [x] Possibilité de se logger via mail / Numéro NIVOL + date de naissance
    • [x] Possibilité de se logger via mail / Numéro NIVOL + mot de passe
    • [x] Un utilisateur avec mot de passe ne peut pas se logger avec sa date de naissance

Administration des organizations

  • [x] Créer une relation ManyToMany entre user et organization, afin de savoir quelles organizations un user peut administrer
  • [x] Créer un écran pour administrer cette relation
  • [x] Instaurer un système de super admin
  • [x] Valider qu'un user n'est pas admin d'un orga et d'un de ses enfants en même temps
  • [x] Si le user peut administrer plusieurs orgas, ajouter un sélecteur dans la partie organization, afin de contextualiser l'orga sur laquelle on travaille (:warning: ne pas prendre en compte les organizations parentes)

Authorization

  • [x] Update le OrganizationVoter pour les organizations qui va vérifier que l'utilisateur a bien un mot de passe et peut bien administrer une organization
  • [x] Ajouter @IsGranted(OrganizationVoter::CAN_MANAGE) sur toutes les routes des controllers App\Controller\Organization
  • [x] Enlever CommissionableAssetVoter
  • [x] Enlever l'entrée access_control sur le pattern ^/organizations dans security.yaml

Gestion du mot de passe

  • [x] Ajouter la possibilité pour un user de modifier son mot de passe
  • [x] Mettre en place le reset password
  • [x] Afficher un bandeau lorsqu'un utilisateur n'a pas de mot de passe alors qu'il peut administrer des orgas

Misc

  • [x] Modifier les fixtures (test + dev) afin de ne plus setter de password aux organizations et de créer un user admin relié aux organizations parentes
  • [x] fix tests
  • [x] Add orga_path twig method as alias for path method to dynamically retrieve the orga object from the current request

nikophil avatar Apr 21 '20 15:04 nikophil