diff --git a/CHANGELOG.md b/CHANGELOG.md index f44903d0ed299ed0c30f90903a86922617c8869e..16f07dec724e9db73343cf8210f33b127f860de6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,12 @@ Journal des modifications ========================= +6.0.4 (21/03/2023) +----- +- Ajout du paramètre [display-user-info](config/unicaen-utilisateur.global.php.dist) qui permet d'afficher ou nonles affectations LDAP de l'utilisateur courant +- [Fix] Test de présence de 'userUsurpation' pour couplage faible avec UnicaenAuthentification + + 0.0.2 (29/03/2021) ----- - [Fix] Correction exception incomplete dans UserService diff --git a/config/merged/utilisateur.config.php b/config/merged/utilisateur.config.php index 1576c90066e1114c3f70fc42e5e1bbc9002168a5..7e08aa1cffd218c97c8a6c0618cfff1f4e53427d 100644 --- a/config/merged/utilisateur.config.php +++ b/config/merged/utilisateur.config.php @@ -27,6 +27,12 @@ return [ 'recherche-individu' => [ 'app' => UserService::class, ], + + /** + * Permet d'afficher, en-dessous de la liste des rôles à sélectionner dans la popover + * de l'utilisateur courant, les affectations principales, affectations fines, etc. + */ + 'display-user-info' => true, ], 'bjyauthorize' => [ diff --git a/config/unicaen-utilisateur.global.php.dist b/config/unicaen-utilisateur.global.php.dist index 4b0b87fac9b92b57bc1b7461176f2a3179856b32..1b42afd61bc552d7d05b399165a67c290a1ac568 100644 --- a/config/unicaen-utilisateur.global.php.dist +++ b/config/unicaen-utilisateur.global.php.dist @@ -78,6 +78,12 @@ return [ * Commenter si comportement non souhaité. */ 'default-user' => 1, + + /** + * Permet d'afficher, en-dessous de la liste des rôles à sélectionner dans la popover + * de l'utilisateur courant, les affectations principales, affectations fines, etc. + */ + 'display-user-info' => true, ], 'navigation' => [ diff --git a/src/UnicaenUtilisateur/Entity/Db/HistoriqueAwareTrait.php b/src/UnicaenUtilisateur/Entity/Db/HistoriqueAwareTrait.php index 78de87bbe976bab8673033f5998f69b086674722..1ad9a2f6a9218058b18039549cecca0ba5626e2d 100644 --- a/src/UnicaenUtilisateur/Entity/Db/HistoriqueAwareTrait.php +++ b/src/UnicaenUtilisateur/Entity/Db/HistoriqueAwareTrait.php @@ -250,11 +250,11 @@ trait HistoriqueAwareTrait public function estNonHistorise(DateTime $dateObs = null) { if (empty($dateObs)) { - try { +// try { $dateObs = new DateTime(); - } catch (\Exception $e) { - throw new RuntimeException("Impossible d'instancier un DateTime!", null, $e); - } +// } catch (\Exception $e) { +// throw new RuntimeException("Impossible d'instancier un DateTime!", null, $e); +// } } $dObs = $dateObs->format('Y-m-d'); diff --git a/src/UnicaenUtilisateur/Provider/Role/Username.php b/src/UnicaenUtilisateur/Provider/Role/Username.php index 66bf13ab78dfc0546fa69a6149489a86ac0dcf1f..de5fab1ad49ab453baf85b1c5d18fa68bdd01366 100644 --- a/src/UnicaenUtilisateur/Provider/Role/Username.php +++ b/src/UnicaenUtilisateur/Provider/Role/Username.php @@ -33,6 +33,7 @@ class Username implements ProviderInterface */ protected $roles; + protected $usernamefield; /** * * @param AuthenticationService $authService @@ -44,6 +45,10 @@ class Username implements ProviderInterface $this->config = $config; } + public function setUsernamefield($usernamefield) + { + $this->usernamefield = $usernamefield; + } /** * @return \Laminas\Permissions\Acl\Role\RoleInterface[] */ @@ -65,7 +70,7 @@ class Username implements ProviderInterface $identity = $identity['db']; } if ($identity instanceof UserInterface) { - $role = new NamedRole($identity->getUsername(), 'user', "Authentifié(e)", null, false); + $role = new NamedRole($identity->getUsername($this->usernamefield), 'user', "Authentifié(e)", null, false); $this->roles[] = $role; } } diff --git a/src/UnicaenUtilisateur/Provider/Role/UsernameServiceFactory.php b/src/UnicaenUtilisateur/Provider/Role/UsernameServiceFactory.php index 421dfee71fab57eec7c5ed54289909d302f7d342..d65021df624343d57bd1bbdce7666f17833de2c3 100644 --- a/src/UnicaenUtilisateur/Provider/Role/UsernameServiceFactory.php +++ b/src/UnicaenUtilisateur/Provider/Role/UsernameServiceFactory.php @@ -33,6 +33,7 @@ class UsernameServiceFactory implements FactoryInterface $authService = $container->get('zfcuser_auth_service'); /* @var $authService \Laminas\Authentication\AuthenticationService */ // $authService = $container->get('Laminas\Authentication\AuthenticationService'); /* @var $authService \Laminas\Authentication\AuthenticationService */ + $usernamefield = $container->get('Config')['unicaen-auth']['local']['ldap']['username']; return new Username($authService, $providerConfig); } } \ No newline at end of file diff --git a/src/UnicaenUtilisateur/View/Helper/UserCurrent.php b/src/UnicaenUtilisateur/View/Helper/UserCurrent.php index a8a0cceb782df40a62603a1a7c6e1db0f96733f4..dff4b86ab06e100aa15adadfbfd14e342f5917e8 100644 --- a/src/UnicaenUtilisateur/View/Helper/UserCurrent.php +++ b/src/UnicaenUtilisateur/View/Helper/UserCurrent.php @@ -1,6 +1,8 @@ <?php namespace UnicaenUtilisateur\View\Helper; +use Laminas\View\Renderer\PhpRenderer; + /** * Aide de vue affichant toutes les infos concernant l'utilisateur courant. * C'est à dire : @@ -17,6 +19,8 @@ class UserCurrent extends UserAbstract */ protected $affectationFineSiDispo = false; + protected bool $displayUserInfo = true; + /** * Point d'entrée. * @@ -60,7 +64,23 @@ class UserCurrent extends UserAbstract $userInfoHelper = $this->getView()->plugin('userInfo'); /* @var $userInfoHelper UserInfo */ - $content = $userProfileHelper . $userInfoHelper($this->getAffectationFineSiDispo()); + $content = $userProfileHelper; + + // Affichage des affectations + if ($this->isDisplayUserInfo()) { + $content .= $userInfoHelper($this->getAffectationFineSiDispo()); + } + + // formulaire d'usurpation d'identité + /** @var PhpRenderer $renderer */ + $renderer = $this->getView(); + + // teste si userUsurpation de UnicaenAuthentification est dispo sans avoir de dépendance forte avec cette bib + if ($renderer->getHelperPluginManager()->has('userUsurpation')) { + /* @var \UnicaenAuthentification\View\Helper\UserUsurpationHelper $userUsurpationHelper */ + $userUsurpationHelper = $renderer->plugin('userUsurpation'); + $content .= $userUsurpationHelper; + } } else { $content = _("Aucun"); @@ -87,14 +107,14 @@ class UserCurrent extends UserAbstract href="#">$status<span class="caret"></span></a> EOS; $out .= PHP_EOL; - + $js = <<<EOS $(function() { $("#$id").popover({ html: true, sanitize: false, container: '#navbar' }); }); EOS; $this->getView()->plugin('inlineScript')->offsetSetScript(1000, $js); - + return $out; } @@ -119,4 +139,24 @@ EOS; $this->affectationFineSiDispo = $affectationFineSiDispo; return $this; } + + + + public function isDisplayUserInfo(): bool + { + return $this->displayUserInfo; + } + + + + public function setDisplayUserInfo(bool $displayUserInfo): UserCurrent + { + $this->displayUserInfo = $displayUserInfo; + + return $this; + } + + + + } diff --git a/src/UnicaenUtilisateur/View/Helper/UserCurrentFactory.php b/src/UnicaenUtilisateur/View/Helper/UserCurrentFactory.php index 65b7a13c77f040a75d9e77413884f35cd6d593a6..c9ae78467378c23395b473223c6e8e0082ebd152 100644 --- a/src/UnicaenUtilisateur/View/Helper/UserCurrentFactory.php +++ b/src/UnicaenUtilisateur/View/Helper/UserCurrentFactory.php @@ -22,6 +22,12 @@ class UserCurrentFactory implements FactoryInterface { $authUserContext = $container->get('authUserContext'); - return new UserCurrent($authUserContext); + $config = $container->get('config')['unicaen-utilisateur'] ?? []; + $displayUserInfo = $config['display-user-info'] ?? true; + + $userCurrent = new UserCurrent($authUserContext); + $userCurrent->setDisplayUserInfo($displayUserInfo); + + return $userCurrent; } } \ No newline at end of file diff --git a/src/UnicaenUtilisateur/View/Helper/UserInfo.php b/src/UnicaenUtilisateur/View/Helper/UserInfo.php index 2c8f733ab545a79a96ea68b4ea8d2d026d097dd7..57f0295d38d24c552eaea5ca303cc3421a857c25 100644 --- a/src/UnicaenUtilisateur/View/Helper/UserInfo.php +++ b/src/UnicaenUtilisateur/View/Helper/UserInfo.php @@ -103,10 +103,6 @@ class UserInfo extends UserAbstract $out .= $aucuneAffDispo; } - // formulaire d'usurpation d'identité - /* @var \UnicaenAuthentification\View\Helper\UserUsurpationHelper $userUsurpationHelper */ - $userUsurpationHelper = $this->view->plugin('userUsurpation'); - $out .= $userUsurpationHelper; return $out; }