Loading module/Application/config/others/utilisateur.config.php +10 −0 Original line number Diff line number Diff line Loading @@ -53,6 +53,7 @@ return [ 'ajouter-role', 'ajouter', 'ajouterFromIndividu', 'lier-individu', ], 'privileges' => UtilisateurPrivileges::UTILISATEUR_MODIFICATION, ], Loading Loading @@ -125,6 +126,15 @@ return [ ], ], ], 'lier-individu' => [ 'type' => Segment::class, 'options' => [ 'route' => '/lier-individu/:utilisateur', 'defaults' => [ 'action' => 'lier-individu', ], ], ], 'creer-compte-local-individu' => [ 'type' => Segment::class, 'options' => [ Loading module/Application/src/Application/Controller/UtilisateurController.php +22 −6 Original line number Diff line number Diff line Loading @@ -9,9 +9,7 @@ use Application\Form\CreationUtilisateurForm; use Application\Form\InitCompteForm; use Application\Form\InitCompteFormAwareTrait; use Application\Search\Controller\SearchControllerInterface; use Application\Search\Controller\SearchControllerPlugin; use Application\Search\Controller\SearchControllerTrait; use Application\Search\SearchServiceAwareTrait; use Application\Service\Acteur\ActeurServiceAwareTrait; use Application\Service\EcoleDoctorale\EcoleDoctoraleServiceAwareTrait; use Application\Service\Etablissement\EtablissementServiceAwareTrait; Loading @@ -21,19 +19,15 @@ use Application\Service\Role\RoleServiceAwareTrait; use Application\Service\Structure\StructureServiceAwareTrait; use Application\Service\UniteRecherche\UniteRechercheServiceAwareTrait; use Application\Service\UserContextServiceAwareTrait; use Application\Service\Utilisateur\UtilisateurService; use Application\Service\Utilisateur\UtilisateurServiceAwareTrait; use Application\SourceCodeStringHelperAwareTrait; use Doctrine\ORM\Query\Expr; use UnicaenApp\Exception\LogicException; use UnicaenApp\Exception\RuntimeException; use UnicaenApp\Service\EntityManagerAwareTrait; use UnicaenAuth\Entity\Db\AbstractUser; use UnicaenAuth\Entity\Shibboleth\ShibUser; use UnicaenAuth\Options\ModuleOptions; use UnicaenAuth\Service\ShibService; use UnicaenAuth\Service\Traits\UserServiceAwareTrait; use UnicaenLdap\Entity\People; use Zend\Authentication\AuthenticationService; use Zend\Http\Request; use Zend\Http\Response; Loading Loading @@ -422,4 +416,26 @@ class UtilisateurController extends \UnicaenAuth\Controller\UtilisateurControlle ]); } public function lierIndividuAction() { $utilisateur = $this->getUtilisateurService()->getRequestedUtilisateur($this); $request = $this->getRequest(); if ($request->isPost()) { $data = $request->getPost(); $individuId = $data['individu']['id']; /** @var Individu $individu */ $individu = $this->getIndividuService()->getRepository()->find($individuId); $utilisateur->setIndividu($individu); $this->getUtilisateurService()->getEntityManager()->flush($utilisateur); } $vm = new ViewModel([ 'title' => "Création de lien entre un individu et l'utilisateur ".$utilisateur->getDisplayName() . " [".$utilisateur->getId()."]", 'utilisateur' => $utilisateur, ]); return $vm; } } No newline at end of file module/Application/src/Application/Service/Utilisateur/UtilisateurService.php +14 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ use UnicaenApp\Exception\RuntimeException; use UnicaenAuth\Service\Traits\UserServiceAwareTrait; use UnicaenLdap\Entity\People; use Zend\Crypt\Password\Bcrypt; use Zend\Mvc\Controller\AbstractActionController; class UtilisateurService extends BaseService { Loading Loading @@ -254,4 +255,17 @@ class UtilisateurService extends BaseService return $utilisateur; } /** * @param AbstractActionController $controller * @param string $param * @return Utilisateur|null */ public function getRequestedUtilisateur(AbstractActionController $controller, string $param = "utilisateur") : ?Utilisateur { $id = $controller->params()->fromRoute($param); /** @var Utilisateur $result */ $result = $this->getRepository()->find($id); return $result; } } No newline at end of file module/Application/view/application/utilisateur/index.phtml +9 −1 Original line number Diff line number Diff line Loading @@ -61,7 +61,15 @@ use Zend\Paginator\Paginator; <td><?php echo Util::truncatedString($utilisateur->getPassword(), 10); ?></td> <td> <?php if ($individu = $utilisateur->getIndividu()): ?> <?php if ($individu->estHistorise()) : ?> <span class="historise"> <?php echo $individu->getNomComplet(); ?> (<?php echo $individu->getId(); ?>) </span> <?php else: ?> <?php echo $individu->getNomComplet(); ?> (<?php echo $individu->getId(); ?>) <?php endif ?> <?php endif ?> </td> </tr> Loading module/Application/view/application/utilisateur/lier-individu.phtml 0 → 100644 +50 −0 Original line number Diff line number Diff line <?php /** * @see \Application\Controller\UtilisateurController::lierIndividuAction(); * @var Utilisateur $utilisateur */ use UnicaenApp\Util; use Application\Entity\Db\Utilisateur; use UnicaenApp\Form\Element\SearchAndSelect; ?> <div class="box panel panel-info"> <div class="panel-heading"> <h2 class="first"> <?php echo $this->translate("Utilisateur") ?> </h2> </div> <div class="panel-body"> <dl class="dl-horizontal"> <dt>Id</dt> <dd><?php echo $utilisateur->getId() ?></dd> <dt>Username</dt> <dd><code><?php echo $utilisateur->getUsername() ?></code></dd> <dt>Email</dt> <dd><?php echo $utilisateur->getEmail() ?></dd> <dt>Display name</dt> <dd><?php echo $utilisateur->getDisplayName() ?></dd> <dt>Password</dt> <dd><?php echo Util::truncatedString($utilisateur->getPassword(), 10) ?></dd> <?php if ($token = $utilisateur->getPasswordResetToken()): ?> <dt>Password reset token</dt> <dd><?php echo Util::truncatedString($token, 8) ?></dd> <?php endif ?> </dl> </div> </div> <form method="post" action="<?php echo $this->url('utilisateur/lier-individu', ['utilisateur' => $utilisateur->getId()], [], true); ?>"> <?php $sas = new SearchAndSelect('individu'); $sas->setLabel($this->translate("Recherche d'un individu")); $sas->setAttribute('class', 'individu-finder'); $sas->setAutocompleteSource($this->url('utilisateur/rechercher-individu', [], [], true)); echo $this->formControlGroup($sas, 'formSearchAndSelect'); ?> <input type="submit" class="btn btn-primary action" value="Lier l'individu à l'utilisateur"> </form> Loading
module/Application/config/others/utilisateur.config.php +10 −0 Original line number Diff line number Diff line Loading @@ -53,6 +53,7 @@ return [ 'ajouter-role', 'ajouter', 'ajouterFromIndividu', 'lier-individu', ], 'privileges' => UtilisateurPrivileges::UTILISATEUR_MODIFICATION, ], Loading Loading @@ -125,6 +126,15 @@ return [ ], ], ], 'lier-individu' => [ 'type' => Segment::class, 'options' => [ 'route' => '/lier-individu/:utilisateur', 'defaults' => [ 'action' => 'lier-individu', ], ], ], 'creer-compte-local-individu' => [ 'type' => Segment::class, 'options' => [ Loading
module/Application/src/Application/Controller/UtilisateurController.php +22 −6 Original line number Diff line number Diff line Loading @@ -9,9 +9,7 @@ use Application\Form\CreationUtilisateurForm; use Application\Form\InitCompteForm; use Application\Form\InitCompteFormAwareTrait; use Application\Search\Controller\SearchControllerInterface; use Application\Search\Controller\SearchControllerPlugin; use Application\Search\Controller\SearchControllerTrait; use Application\Search\SearchServiceAwareTrait; use Application\Service\Acteur\ActeurServiceAwareTrait; use Application\Service\EcoleDoctorale\EcoleDoctoraleServiceAwareTrait; use Application\Service\Etablissement\EtablissementServiceAwareTrait; Loading @@ -21,19 +19,15 @@ use Application\Service\Role\RoleServiceAwareTrait; use Application\Service\Structure\StructureServiceAwareTrait; use Application\Service\UniteRecherche\UniteRechercheServiceAwareTrait; use Application\Service\UserContextServiceAwareTrait; use Application\Service\Utilisateur\UtilisateurService; use Application\Service\Utilisateur\UtilisateurServiceAwareTrait; use Application\SourceCodeStringHelperAwareTrait; use Doctrine\ORM\Query\Expr; use UnicaenApp\Exception\LogicException; use UnicaenApp\Exception\RuntimeException; use UnicaenApp\Service\EntityManagerAwareTrait; use UnicaenAuth\Entity\Db\AbstractUser; use UnicaenAuth\Entity\Shibboleth\ShibUser; use UnicaenAuth\Options\ModuleOptions; use UnicaenAuth\Service\ShibService; use UnicaenAuth\Service\Traits\UserServiceAwareTrait; use UnicaenLdap\Entity\People; use Zend\Authentication\AuthenticationService; use Zend\Http\Request; use Zend\Http\Response; Loading Loading @@ -422,4 +416,26 @@ class UtilisateurController extends \UnicaenAuth\Controller\UtilisateurControlle ]); } public function lierIndividuAction() { $utilisateur = $this->getUtilisateurService()->getRequestedUtilisateur($this); $request = $this->getRequest(); if ($request->isPost()) { $data = $request->getPost(); $individuId = $data['individu']['id']; /** @var Individu $individu */ $individu = $this->getIndividuService()->getRepository()->find($individuId); $utilisateur->setIndividu($individu); $this->getUtilisateurService()->getEntityManager()->flush($utilisateur); } $vm = new ViewModel([ 'title' => "Création de lien entre un individu et l'utilisateur ".$utilisateur->getDisplayName() . " [".$utilisateur->getId()."]", 'utilisateur' => $utilisateur, ]); return $vm; } } No newline at end of file
module/Application/src/Application/Service/Utilisateur/UtilisateurService.php +14 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ use UnicaenApp\Exception\RuntimeException; use UnicaenAuth\Service\Traits\UserServiceAwareTrait; use UnicaenLdap\Entity\People; use Zend\Crypt\Password\Bcrypt; use Zend\Mvc\Controller\AbstractActionController; class UtilisateurService extends BaseService { Loading Loading @@ -254,4 +255,17 @@ class UtilisateurService extends BaseService return $utilisateur; } /** * @param AbstractActionController $controller * @param string $param * @return Utilisateur|null */ public function getRequestedUtilisateur(AbstractActionController $controller, string $param = "utilisateur") : ?Utilisateur { $id = $controller->params()->fromRoute($param); /** @var Utilisateur $result */ $result = $this->getRepository()->find($id); return $result; } } No newline at end of file
module/Application/view/application/utilisateur/index.phtml +9 −1 Original line number Diff line number Diff line Loading @@ -61,7 +61,15 @@ use Zend\Paginator\Paginator; <td><?php echo Util::truncatedString($utilisateur->getPassword(), 10); ?></td> <td> <?php if ($individu = $utilisateur->getIndividu()): ?> <?php if ($individu->estHistorise()) : ?> <span class="historise"> <?php echo $individu->getNomComplet(); ?> (<?php echo $individu->getId(); ?>) </span> <?php else: ?> <?php echo $individu->getNomComplet(); ?> (<?php echo $individu->getId(); ?>) <?php endif ?> <?php endif ?> </td> </tr> Loading
module/Application/view/application/utilisateur/lier-individu.phtml 0 → 100644 +50 −0 Original line number Diff line number Diff line <?php /** * @see \Application\Controller\UtilisateurController::lierIndividuAction(); * @var Utilisateur $utilisateur */ use UnicaenApp\Util; use Application\Entity\Db\Utilisateur; use UnicaenApp\Form\Element\SearchAndSelect; ?> <div class="box panel panel-info"> <div class="panel-heading"> <h2 class="first"> <?php echo $this->translate("Utilisateur") ?> </h2> </div> <div class="panel-body"> <dl class="dl-horizontal"> <dt>Id</dt> <dd><?php echo $utilisateur->getId() ?></dd> <dt>Username</dt> <dd><code><?php echo $utilisateur->getUsername() ?></code></dd> <dt>Email</dt> <dd><?php echo $utilisateur->getEmail() ?></dd> <dt>Display name</dt> <dd><?php echo $utilisateur->getDisplayName() ?></dd> <dt>Password</dt> <dd><?php echo Util::truncatedString($utilisateur->getPassword(), 10) ?></dd> <?php if ($token = $utilisateur->getPasswordResetToken()): ?> <dt>Password reset token</dt> <dd><?php echo Util::truncatedString($token, 8) ?></dd> <?php endif ?> </dl> </div> </div> <form method="post" action="<?php echo $this->url('utilisateur/lier-individu', ['utilisateur' => $utilisateur->getId()], [], true); ?>"> <?php $sas = new SearchAndSelect('individu'); $sas->setLabel($this->translate("Recherche d'un individu")); $sas->setAttribute('class', 'individu-finder'); $sas->setAutocompleteSource($this->url('utilisateur/rechercher-individu', [], [], true)); echo $this->formControlGroup($sas, 'formSearchAndSelect'); ?> <input type="submit" class="btn btn-primary action" value="Lier l'individu à l'utilisateur"> </form>