Loading CHANGELOG.md +3 −1 Original line number Diff line number Diff line Loading @@ -3,7 +3,9 @@ Journal des modifications 6.0.8 ----- - [THESE] Ajout de logos sur le document des co-encadrements - Ajout de logos sur le document des co-encadrements - Possibilité de supprimer un compte utilisateur. - [FIX] Rapports d'activité : le rôle Maison du doctorat ne pouvait pas dévalider un rapport d'activité (en cas de validation du Doctorant). 6.0.7 ----- Loading docker-compose.yml +5 −5 Original line number Diff line number Diff line version: '3.7' networks: sygalnet: name: sygalnet driver: bridge # Settings and configurations that are common for all containers x-minio-common: &minio-common image: minio/minio Loading Loading @@ -122,8 +127,3 @@ volumes: data3-2: data4-1: data4-2: networks: sygalnet: name: sygalnet driver: bridge No newline at end of file module/Application/config/others/utilisateur.config.php +10 −0 Original line number Diff line number Diff line Loading @@ -52,6 +52,7 @@ return [ 'ajouter-role', 'ajouter', 'ajouterFromIndividu', 'supprimer', 'lier-individu', 'lier-nouvel-individu', 'delier-individu', Loading Loading @@ -117,6 +118,15 @@ return [ ], ], ], 'supprimer' => [ 'type' => Segment::class, 'options' => [ 'route' => '/supprimer/:utilisateur', 'defaults' => [ 'action' => 'supprimer', ], ], ], 'gerer-utilisateur' => [ 'type' => Segment::class, 'options' => [ Loading module/Application/src/Application/Controller/UtilisateurController.php +21 −0 Original line number Diff line number Diff line Loading @@ -10,6 +10,7 @@ use Application\Search\Controller\SearchControllerInterface; use Application\Search\Controller\SearchControllerTrait; use Application\Search\SearchServiceAwareTrait; use Application\Service\Notification\ApplicationNotificationFactoryAwareTrait; use Exception; use These\Service\Acteur\ActeurServiceAwareTrait; use Structure\Service\EcoleDoctorale\EcoleDoctoraleServiceAwareTrait; use Structure\Service\Etablissement\EtablissementServiceAwareTrait; Loading Loading @@ -41,6 +42,7 @@ use UnicaenAuth\Service\ShibService; use UnicaenAuth\Service\Traits\UserServiceAwareTrait; use UnicaenAuthToken\Controller\TokenController; use UnicaenAuthToken\Service\TokenServiceAwareTrait; use Webmozart\Assert\Assert; /** * @method \Application\Controller\Plugin\Forward forward() Loading Loading @@ -284,6 +286,25 @@ class UtilisateurController extends \UnicaenAuth\Controller\UtilisateurControlle ]); } public function supprimerAction(): Response|ViewModel { if ($post = $this->params()->fromPost()) { Assert::keyExists($post, 'utilisateur'); Assert::eq($post['utilisateur'], $this->params()->fromRoute('utilisateur')); $id = $post['utilisateur']; $utilisateur = $this->utilisateurService->getRepository()->find($id); /** @var Utilisateur $utilisateur */ try { $this->utilisateurService->supprimerUtilisateur($utilisateur); $this->flashMessenger()->addSuccessMessage("Compte utilisateur suivant supprimé avec succès : " . $utilisateur->getUsername()); } catch (Exception $e) { $this->flashMessenger()->addErrorMessage("Le compte utilisateur '{$utilisateur->getUsername()}' n'a pas pu être supprimé. " . $e->getMessage()); return $this->redirect()->toRoute('utilisateur/voir', ['utilisateur' => $utilisateur->getId()]); } } return $this->redirect()->toRoute('utilisateur'); } /** * Usurpe l'identité d'un **individu**. * Loading module/Application/src/Application/Service/Utilisateur/UtilisateurService.php +13 −7 Original line number Diff line number Diff line Loading @@ -2,6 +2,8 @@ namespace Application\Service\Utilisateur; use Doctrine\DBAL\Exception\ForeignKeyConstraintViolationException; use Exception; use Individu\Entity\Db\Individu; use Application\Entity\Db\Repository\UtilisateurRepository; use Application\Entity\Db\Utilisateur; Loading Loading @@ -181,15 +183,19 @@ 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 AbstractUser $utilisateur * @throws \Exception */ public function supprimerUtilisateur(AbstractUser $utilisateur) { public function supprimerUtilisateur(AbstractUser $utilisateur): void { try { $this->getEntityManager()->remove($utilisateur); $this->getEntityManager()->flush($utilisateur); } catch (OptimisticLockException $e) { throw new RuntimeException("Impossible d'enregistrer l'utilisateur", null, $e); $this->entityManager->remove($utilisateur); $this->entityManager->flush(); } catch (Exception $e) { $precision = ''; if ($e instanceof ForeignKeyConstraintViolationException) { $precision = " car il est référencé dans d'autres tables de données"; } throw new Exception(sprintf("Impossible de supprimer ce compte utilisateur%s.", $precision), null, $e); } } Loading Loading
CHANGELOG.md +3 −1 Original line number Diff line number Diff line Loading @@ -3,7 +3,9 @@ Journal des modifications 6.0.8 ----- - [THESE] Ajout de logos sur le document des co-encadrements - Ajout de logos sur le document des co-encadrements - Possibilité de supprimer un compte utilisateur. - [FIX] Rapports d'activité : le rôle Maison du doctorat ne pouvait pas dévalider un rapport d'activité (en cas de validation du Doctorant). 6.0.7 ----- Loading
docker-compose.yml +5 −5 Original line number Diff line number Diff line version: '3.7' networks: sygalnet: name: sygalnet driver: bridge # Settings and configurations that are common for all containers x-minio-common: &minio-common image: minio/minio Loading Loading @@ -122,8 +127,3 @@ volumes: data3-2: data4-1: data4-2: networks: sygalnet: name: sygalnet driver: bridge No newline at end of file
module/Application/config/others/utilisateur.config.php +10 −0 Original line number Diff line number Diff line Loading @@ -52,6 +52,7 @@ return [ 'ajouter-role', 'ajouter', 'ajouterFromIndividu', 'supprimer', 'lier-individu', 'lier-nouvel-individu', 'delier-individu', Loading Loading @@ -117,6 +118,15 @@ return [ ], ], ], 'supprimer' => [ 'type' => Segment::class, 'options' => [ 'route' => '/supprimer/:utilisateur', 'defaults' => [ 'action' => 'supprimer', ], ], ], 'gerer-utilisateur' => [ 'type' => Segment::class, 'options' => [ Loading
module/Application/src/Application/Controller/UtilisateurController.php +21 −0 Original line number Diff line number Diff line Loading @@ -10,6 +10,7 @@ use Application\Search\Controller\SearchControllerInterface; use Application\Search\Controller\SearchControllerTrait; use Application\Search\SearchServiceAwareTrait; use Application\Service\Notification\ApplicationNotificationFactoryAwareTrait; use Exception; use These\Service\Acteur\ActeurServiceAwareTrait; use Structure\Service\EcoleDoctorale\EcoleDoctoraleServiceAwareTrait; use Structure\Service\Etablissement\EtablissementServiceAwareTrait; Loading Loading @@ -41,6 +42,7 @@ use UnicaenAuth\Service\ShibService; use UnicaenAuth\Service\Traits\UserServiceAwareTrait; use UnicaenAuthToken\Controller\TokenController; use UnicaenAuthToken\Service\TokenServiceAwareTrait; use Webmozart\Assert\Assert; /** * @method \Application\Controller\Plugin\Forward forward() Loading Loading @@ -284,6 +286,25 @@ class UtilisateurController extends \UnicaenAuth\Controller\UtilisateurControlle ]); } public function supprimerAction(): Response|ViewModel { if ($post = $this->params()->fromPost()) { Assert::keyExists($post, 'utilisateur'); Assert::eq($post['utilisateur'], $this->params()->fromRoute('utilisateur')); $id = $post['utilisateur']; $utilisateur = $this->utilisateurService->getRepository()->find($id); /** @var Utilisateur $utilisateur */ try { $this->utilisateurService->supprimerUtilisateur($utilisateur); $this->flashMessenger()->addSuccessMessage("Compte utilisateur suivant supprimé avec succès : " . $utilisateur->getUsername()); } catch (Exception $e) { $this->flashMessenger()->addErrorMessage("Le compte utilisateur '{$utilisateur->getUsername()}' n'a pas pu être supprimé. " . $e->getMessage()); return $this->redirect()->toRoute('utilisateur/voir', ['utilisateur' => $utilisateur->getId()]); } } return $this->redirect()->toRoute('utilisateur'); } /** * Usurpe l'identité d'un **individu**. * Loading
module/Application/src/Application/Service/Utilisateur/UtilisateurService.php +13 −7 Original line number Diff line number Diff line Loading @@ -2,6 +2,8 @@ namespace Application\Service\Utilisateur; use Doctrine\DBAL\Exception\ForeignKeyConstraintViolationException; use Exception; use Individu\Entity\Db\Individu; use Application\Entity\Db\Repository\UtilisateurRepository; use Application\Entity\Db\Utilisateur; Loading Loading @@ -181,15 +183,19 @@ 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 AbstractUser $utilisateur * @throws \Exception */ public function supprimerUtilisateur(AbstractUser $utilisateur) { public function supprimerUtilisateur(AbstractUser $utilisateur): void { try { $this->getEntityManager()->remove($utilisateur); $this->getEntityManager()->flush($utilisateur); } catch (OptimisticLockException $e) { throw new RuntimeException("Impossible d'enregistrer l'utilisateur", null, $e); $this->entityManager->remove($utilisateur); $this->entityManager->flush(); } catch (Exception $e) { $precision = ''; if ($e instanceof ForeignKeyConstraintViolationException) { $precision = " car il est référencé dans d'autres tables de données"; } throw new Exception(sprintf("Impossible de supprimer ce compte utilisateur%s.", $precision), null, $e); } } Loading