Loading module/Application/src/Application/Service/Utilisateur/UtilisateurService.php +3 −2 Original line number Diff line number Diff line Loading @@ -14,6 +14,7 @@ use Doctrine\ORM\NonUniqueResultException; use Doctrine\ORM\OptimisticLockException; use Doctrine\ORM\ORMException; use UnicaenApp\Exception\RuntimeException; use UnicaenAuth\Entity\Db\AbstractUser; use UnicaenAuth\Service\Traits\UserServiceAwareTrait; use UnicaenLdap\Entity\People; use Zend\Crypt\Password\Bcrypt; Loading Loading @@ -243,9 +244,9 @@ class UtilisateurService extends BaseService /** * Fonction utilisée lors de la déassociation d'un utilisateur/individu et un membre d'un jury de thèse * @param Utilisateur $utilisateur * @param AbstractUser $utilisateur */ public function supprimerUtilisateur(Utilisateur $utilisateur) { public function supprimerUtilisateur(AbstractUser $utilisateur) { try { $this->getEntityManager()->remove($utilisateur); $this->getEntityManager()->flush($utilisateur); Loading module/Soutenance/src/Soutenance/Controller/PresoutenanceController.php +1 −2 Original line number Diff line number Diff line Loading @@ -264,7 +264,6 @@ class PresoutenanceController extends AbstractController if (!$acteur) throw new RuntimeException("Aucun acteur à deassocier !"); //retrait dans membre de soutenance $username = $this->getMembreService()->generateUsername($membre); $membre->setActeur(null); $this->getMembreService()->update($membre); Loading @@ -273,7 +272,7 @@ class PresoutenanceController extends AbstractController $this->getValidationService()->unsignEngagementImpartialite($validation); } $utilisateur = $this->utilisateurService->getRepository()->findByUsername($username); $utilisateur = $this->getMembreService()->getUtilisateur($membre); if ($utilisateur) $this->utilisateurService->supprimerUtilisateur($utilisateur); return $this->redirect()->toRoute('soutenance/presoutenance', ['these' => $these->getId()], [], true); Loading module/Soutenance/src/Soutenance/Service/Membre/MembreService.php +20 −2 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ use Soutenance\Entity\Qualite; use Soutenance\Service\Qualite\QualiteServiceAwareTrait; use UnicaenApp\Exception\RuntimeException; use UnicaenApp\Service\EntityManagerAwareTrait; use UnicaenAuth\Entity\Db\AbstractUser; use UnicaenAuthToken\Entity\Db\AbstractUserToken; use UnicaenAuthToken\Service\TokenServiceAwareTrait; use UnicaenAuthToken\Service\TokenServiceException; Loading Loading @@ -282,6 +283,24 @@ class MembreService { return ($nomusuel . "_" . $membre->getId()); } /** RECUPERATION DE L'UTILSATEUR D'UN MEMBRE **********************************************************************/ /** * @param Membre $membre * @return AbstractUser|null */ public function getUtilisateur(Membre $membre) : ?AbstractUser { $acteur = $membre->getActeur(); if ($acteur === null) return null; $individu = $acteur->getIndividu(); if ($individu === null) return null; /** @var AbstractUser[] $utilisateurs */ $utilisateurs = $individu->getUtilisateurs(); return (empty($utilisateurs))?null:$utilisateurs[0]; } /** GESTION DES TOKENS ********************************************************************************************/ public function retrieveToken(Membre $membre) : ?AbstractUserToken Loading @@ -299,8 +318,7 @@ class MembreService { public function createToken(Membre $membre) : AbstractUserToken { $username = $this->generateUsername($membre); $utilisateur = $this->getUtilisateurService()->getRepository()->findByUsername($username); $utilisateur = $this->getUtilisateur($membre); if ($utilisateur === null) throw new LogicException("Aucun utilisateur n'est correctement déclaré pour le membre [username:".$username."]"); try { Loading Loading
module/Application/src/Application/Service/Utilisateur/UtilisateurService.php +3 −2 Original line number Diff line number Diff line Loading @@ -14,6 +14,7 @@ use Doctrine\ORM\NonUniqueResultException; use Doctrine\ORM\OptimisticLockException; use Doctrine\ORM\ORMException; use UnicaenApp\Exception\RuntimeException; use UnicaenAuth\Entity\Db\AbstractUser; use UnicaenAuth\Service\Traits\UserServiceAwareTrait; use UnicaenLdap\Entity\People; use Zend\Crypt\Password\Bcrypt; Loading Loading @@ -243,9 +244,9 @@ class UtilisateurService extends BaseService /** * Fonction utilisée lors de la déassociation d'un utilisateur/individu et un membre d'un jury de thèse * @param Utilisateur $utilisateur * @param AbstractUser $utilisateur */ public function supprimerUtilisateur(Utilisateur $utilisateur) { public function supprimerUtilisateur(AbstractUser $utilisateur) { try { $this->getEntityManager()->remove($utilisateur); $this->getEntityManager()->flush($utilisateur); Loading
module/Soutenance/src/Soutenance/Controller/PresoutenanceController.php +1 −2 Original line number Diff line number Diff line Loading @@ -264,7 +264,6 @@ class PresoutenanceController extends AbstractController if (!$acteur) throw new RuntimeException("Aucun acteur à deassocier !"); //retrait dans membre de soutenance $username = $this->getMembreService()->generateUsername($membre); $membre->setActeur(null); $this->getMembreService()->update($membre); Loading @@ -273,7 +272,7 @@ class PresoutenanceController extends AbstractController $this->getValidationService()->unsignEngagementImpartialite($validation); } $utilisateur = $this->utilisateurService->getRepository()->findByUsername($username); $utilisateur = $this->getMembreService()->getUtilisateur($membre); if ($utilisateur) $this->utilisateurService->supprimerUtilisateur($utilisateur); return $this->redirect()->toRoute('soutenance/presoutenance', ['these' => $these->getId()], [], true); Loading
module/Soutenance/src/Soutenance/Service/Membre/MembreService.php +20 −2 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ use Soutenance\Entity\Qualite; use Soutenance\Service\Qualite\QualiteServiceAwareTrait; use UnicaenApp\Exception\RuntimeException; use UnicaenApp\Service\EntityManagerAwareTrait; use UnicaenAuth\Entity\Db\AbstractUser; use UnicaenAuthToken\Entity\Db\AbstractUserToken; use UnicaenAuthToken\Service\TokenServiceAwareTrait; use UnicaenAuthToken\Service\TokenServiceException; Loading Loading @@ -282,6 +283,24 @@ class MembreService { return ($nomusuel . "_" . $membre->getId()); } /** RECUPERATION DE L'UTILSATEUR D'UN MEMBRE **********************************************************************/ /** * @param Membre $membre * @return AbstractUser|null */ public function getUtilisateur(Membre $membre) : ?AbstractUser { $acteur = $membre->getActeur(); if ($acteur === null) return null; $individu = $acteur->getIndividu(); if ($individu === null) return null; /** @var AbstractUser[] $utilisateurs */ $utilisateurs = $individu->getUtilisateurs(); return (empty($utilisateurs))?null:$utilisateurs[0]; } /** GESTION DES TOKENS ********************************************************************************************/ public function retrieveToken(Membre $membre) : ?AbstractUserToken Loading @@ -299,8 +318,7 @@ class MembreService { public function createToken(Membre $membre) : AbstractUserToken { $username = $this->generateUsername($membre); $utilisateur = $this->getUtilisateurService()->getRepository()->findByUsername($username); $utilisateur = $this->getUtilisateur($membre); if ($utilisateur === null) throw new LogicException("Aucun utilisateur n'est correctement déclaré pour le membre [username:".$username."]"); try { Loading