Loading CHANGELOG.md +1 −0 Original line number Diff line number Diff line Loading @@ -4,6 +4,7 @@ Journal des modifications 2.1.7 ----- - Changement du fonctionnement de sursis pour les soutenances : seul la validation acteur vérifie le délai de deux mois et le sursis annule cette vérification. - Ajout d'une interface pour lier/délier des utilisateurs sans individu à un individu. 2.1.6 ----- Loading module/Application/config/others/utilisateur.config.php +11 −1 Original line number Diff line number Diff line Loading @@ -54,6 +54,7 @@ return [ 'ajouter', 'ajouterFromIndividu', 'lier-individu', 'delier-individu', ], 'privileges' => UtilisateurPrivileges::UTILISATEUR_MODIFICATION, ], Loading Loading @@ -129,12 +130,21 @@ return [ 'lier-individu' => [ 'type' => Segment::class, 'options' => [ 'route' => '/lier-individu/:utilisateur', 'route' => '/lier-individu/:utilisateur[/:individu]', 'defaults' => [ 'action' => 'lier-individu', ], ], ], 'delier-individu' => [ 'type' => Segment::class, 'options' => [ 'route' => '/delier-individu/:utilisateur', 'defaults' => [ 'action' => 'delier-individu', ], ], ], 'creer-compte-local-individu' => [ 'type' => Segment::class, 'options' => [ Loading module/Application/src/Application/Controller/UtilisateurController.php +48 −2 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ use Application\Service\UniteRecherche\UniteRechercheServiceAwareTrait; use Application\Service\UserContextServiceAwareTrait; use Application\Service\Utilisateur\UtilisateurServiceAwareTrait; use Application\SourceCodeStringHelperAwareTrait; use Doctrine\ORM\ORMException; use Doctrine\ORM\Query\Expr; use UnicaenApp\Exception\RuntimeException; use UnicaenApp\Service\EntityManagerAwareTrait; Loading Loading @@ -420,14 +421,48 @@ class UtilisateurController extends \UnicaenAuth\Controller\UtilisateurControlle { $utilisateur = $this->getUtilisateurService()->getRequestedUtilisateur($this); /** * Si on a un utilisateur et un individu alors on doit réaliser le lien */ $individu = $this->getIndividuService()->getRequestedIndividu($this); if ($individu !== null) { $utilisateur->setIndividu($individu); try { $this->getUtilisateurService()->getEntityManager()->flush($utilisateur); } catch(ORMException $e) { throw new RuntimeException("Un problème est survenu lors de l'enregistrement en base de donnée", 0, $e); } $vm = new ViewModel([ 'title' => "Création de lien entre un individu et l'utilisateur ".$utilisateur->getDisplayName() . " [".$utilisateur->getId()."]", 'utilisateur' => $utilisateur, 'individu' => $individu, ]); return $vm; } $request = $this->getRequest(); if ($request->isPost()) { /** * Si on revient du post un individu à été selectionné et on examine pour validation */ $data = $request->getPost(); $individuId = $data['individu']['id']; /** @var Individu $individu */ $individu = $this->getIndividuService()->getRepository()->find($individuId); $utilisateur->setIndividu($individu); $this->getUtilisateurService()->getEntityManager()->flush($utilisateur); if ($individu !== null) { $acteurs = $this->getActeurService()->getRepository()->findActeursByIndividu($individu); $roles = $individu->getRoles(); $vm = new ViewModel([ "title" => "Création de lien entre un individu et l'utilisateur " . $utilisateur->getDisplayName() . " [" . $utilisateur->getId() . "]", "utilisateur" => $utilisateur, "individu" => $individu, "acteurs" => $acteurs, "roles" => $roles, ]); return $vm; } } $vm = new ViewModel([ Loading @@ -435,7 +470,18 @@ class UtilisateurController extends \UnicaenAuth\Controller\UtilisateurControlle 'utilisateur' => $utilisateur, ]); return $vm; } public function delierIndividuAction() { $utilisateur = $this->getUtilisateurService()->getRequestedUtilisateur($this); $utilisateur->setIndividu(null); try { $this->getUtilisateurService()->getEntityManager()->flush($utilisateur); } catch (ORMException $e) { throw new RuntimeException("Un problème est survenu lors de l'enregistrement en base de donnée", 0, $e); } return $this->redirect()->toRoute('utilisateur/voir', ['utilisateur' => $utilisateur->getId()], [], true); } } No newline at end of file module/Application/src/Application/Entity/Db/Utilisateur.php +1 −1 Original line number Diff line number Diff line Loading @@ -39,7 +39,7 @@ class Utilisateur extends AbstractUser implements UserInterface, ProviderInterfa * @param Individu $individu * @return self */ public function setIndividu(Individu $individu = null) public function setIndividu(?Individu $individu = null) { $this->individu = $individu; Loading module/Application/src/Application/Service/Individu/IndividuService.php +3 −0 Original line number Diff line number Diff line Loading @@ -179,8 +179,11 @@ class IndividuService extends BaseService { $id = $controller->params()->fromRoute($param); /** @var Individu $individu */ if ($id !== null) { $individu = $this->getRepository()->find($id); return $individu; } return null; } } No newline at end of file Loading
CHANGELOG.md +1 −0 Original line number Diff line number Diff line Loading @@ -4,6 +4,7 @@ Journal des modifications 2.1.7 ----- - Changement du fonctionnement de sursis pour les soutenances : seul la validation acteur vérifie le délai de deux mois et le sursis annule cette vérification. - Ajout d'une interface pour lier/délier des utilisateurs sans individu à un individu. 2.1.6 ----- Loading
module/Application/config/others/utilisateur.config.php +11 −1 Original line number Diff line number Diff line Loading @@ -54,6 +54,7 @@ return [ 'ajouter', 'ajouterFromIndividu', 'lier-individu', 'delier-individu', ], 'privileges' => UtilisateurPrivileges::UTILISATEUR_MODIFICATION, ], Loading Loading @@ -129,12 +130,21 @@ return [ 'lier-individu' => [ 'type' => Segment::class, 'options' => [ 'route' => '/lier-individu/:utilisateur', 'route' => '/lier-individu/:utilisateur[/:individu]', 'defaults' => [ 'action' => 'lier-individu', ], ], ], 'delier-individu' => [ 'type' => Segment::class, 'options' => [ 'route' => '/delier-individu/:utilisateur', 'defaults' => [ 'action' => 'delier-individu', ], ], ], 'creer-compte-local-individu' => [ 'type' => Segment::class, 'options' => [ Loading
module/Application/src/Application/Controller/UtilisateurController.php +48 −2 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ use Application\Service\UniteRecherche\UniteRechercheServiceAwareTrait; use Application\Service\UserContextServiceAwareTrait; use Application\Service\Utilisateur\UtilisateurServiceAwareTrait; use Application\SourceCodeStringHelperAwareTrait; use Doctrine\ORM\ORMException; use Doctrine\ORM\Query\Expr; use UnicaenApp\Exception\RuntimeException; use UnicaenApp\Service\EntityManagerAwareTrait; Loading Loading @@ -420,14 +421,48 @@ class UtilisateurController extends \UnicaenAuth\Controller\UtilisateurControlle { $utilisateur = $this->getUtilisateurService()->getRequestedUtilisateur($this); /** * Si on a un utilisateur et un individu alors on doit réaliser le lien */ $individu = $this->getIndividuService()->getRequestedIndividu($this); if ($individu !== null) { $utilisateur->setIndividu($individu); try { $this->getUtilisateurService()->getEntityManager()->flush($utilisateur); } catch(ORMException $e) { throw new RuntimeException("Un problème est survenu lors de l'enregistrement en base de donnée", 0, $e); } $vm = new ViewModel([ 'title' => "Création de lien entre un individu et l'utilisateur ".$utilisateur->getDisplayName() . " [".$utilisateur->getId()."]", 'utilisateur' => $utilisateur, 'individu' => $individu, ]); return $vm; } $request = $this->getRequest(); if ($request->isPost()) { /** * Si on revient du post un individu à été selectionné et on examine pour validation */ $data = $request->getPost(); $individuId = $data['individu']['id']; /** @var Individu $individu */ $individu = $this->getIndividuService()->getRepository()->find($individuId); $utilisateur->setIndividu($individu); $this->getUtilisateurService()->getEntityManager()->flush($utilisateur); if ($individu !== null) { $acteurs = $this->getActeurService()->getRepository()->findActeursByIndividu($individu); $roles = $individu->getRoles(); $vm = new ViewModel([ "title" => "Création de lien entre un individu et l'utilisateur " . $utilisateur->getDisplayName() . " [" . $utilisateur->getId() . "]", "utilisateur" => $utilisateur, "individu" => $individu, "acteurs" => $acteurs, "roles" => $roles, ]); return $vm; } } $vm = new ViewModel([ Loading @@ -435,7 +470,18 @@ class UtilisateurController extends \UnicaenAuth\Controller\UtilisateurControlle 'utilisateur' => $utilisateur, ]); return $vm; } public function delierIndividuAction() { $utilisateur = $this->getUtilisateurService()->getRequestedUtilisateur($this); $utilisateur->setIndividu(null); try { $this->getUtilisateurService()->getEntityManager()->flush($utilisateur); } catch (ORMException $e) { throw new RuntimeException("Un problème est survenu lors de l'enregistrement en base de donnée", 0, $e); } return $this->redirect()->toRoute('utilisateur/voir', ['utilisateur' => $utilisateur->getId()], [], true); } } No newline at end of file
module/Application/src/Application/Entity/Db/Utilisateur.php +1 −1 Original line number Diff line number Diff line Loading @@ -39,7 +39,7 @@ class Utilisateur extends AbstractUser implements UserInterface, ProviderInterfa * @param Individu $individu * @return self */ public function setIndividu(Individu $individu = null) public function setIndividu(?Individu $individu = null) { $this->individu = $individu; Loading
module/Application/src/Application/Service/Individu/IndividuService.php +3 −0 Original line number Diff line number Diff line Loading @@ -179,8 +179,11 @@ class IndividuService extends BaseService { $id = $controller->params()->fromRoute($param); /** @var Individu $individu */ if ($id !== null) { $individu = $this->getRepository()->find($id); return $individu; } return null; } } No newline at end of file