Loading config/module.config.php +6 −0 Original line number Diff line number Diff line Loading @@ -5,6 +5,8 @@ use Doctrine\ORM\Mapping\Driver\XmlDriver; use UnicaenUtilisateur\Event\UserRoleSelectedEventListener; use UnicaenUtilisateur\ORM\Event\Listeners\HistoriqueListener; use UnicaenUtilisateur\ORM\Event\Listeners\HistoriqueListenerFactory; use UnicaenUtilisateur\View\Helper\UserConnection; use UnicaenUtilisateur\View\Helper\UserConnectionFactory; use UnicaenUtilisateur\View\Helper\UserCurrent; use UnicaenUtilisateur\View\Helper\UserCurrentFactory; use UnicaenUtilisateur\View\Helper\UserInfo; Loading @@ -17,6 +19,8 @@ use UnicaenUtilisateur\View\Helper\UserProfileSelectRadioItem; use UnicaenUtilisateur\View\Helper\UserProfileSelectRadioItemFactory; use UnicaenUtilisateur\View\Helper\UserStatus; use UnicaenUtilisateur\View\Helper\UserStatusFactory; use UnicaenUtilisateur\View\Helper\UserUsurpationHelper; use UnicaenUtilisateur\View\Helper\UserUsurpationHelperFactory; return [ 'doctrine' => [ Loading Loading @@ -68,12 +72,14 @@ return [ 'userProfileSelectRadioItem' => UserProfileSelectRadioItem::class, ], 'factories' => [ UserConnection::class => UserConnectionFactory::class, UserCurrent::class => UserCurrentFactory::class, UserStatus::class => UserStatusFactory::class, UserProfile::class => UserProfileFactory::class, UserInfo::class => UserInfoFactory::class, UserProfileSelect::class => UserProfileSelectFactory::class, UserProfileSelectRadioItem::class => UserProfileSelectRadioItemFactory::class, UserUsurpationHelper::class => UserUsurpationHelperFactory::class, ], ], ]; src/UnicaenUtilisateur/View/Helper/UserAbstract.php +4 −1 Original line number Diff line number Diff line Loading @@ -12,6 +12,9 @@ use Zend\I18n\View\Helper\AbstractTranslatorHelper; */ abstract class UserAbstract extends AbstractTranslatorHelper { /** * @var UserContext */ protected $userContext; /** Loading @@ -22,7 +25,7 @@ abstract class UserAbstract extends AbstractTranslatorHelper /** * Constructeur. * * @param UserContext $userContext * @param UserContext|null $userContext */ public function __construct(UserContext $userContext = null) { Loading src/UnicaenUtilisateur/View/Helper/UserConnection.php 0 → 100644 +64 −0 Original line number Diff line number Diff line <?php namespace UnicaenUtilisateur\View\Helper; /** * Aide de vue de génération du lien de connexion/déconnexion à l'appli selon qu'un * utilisateur est connecté ou pas. * * @author Bertrand GAUTHIER <bertrand.gauthier@unicaen.fr> */ class UserConnection extends UserAbstract { /** * Point d'entrée. * * @return UserConnection */ public function __invoke() { return $this; } /** * Retourne le code HTML généré par cette aide de vue. * * @return string */ public function __toString() { $template = '%s'; $out = sprintf($template, $this->createConnectionLink()); return $out; } /** * * @return string */ protected function createConnectionLink() { $identity = $this->getIdentity(); $urlHelper = $this->getView()->plugin('url'); $template = '<a class="navbar-link user-connection" href="%s" title="%s">%s</a>'; if (!$identity) { $href = $urlHelper('zfcuser/login'); $lib = "Connexion"; $title = "Affiche le formulaire d'authentification"; } else { $href = $urlHelper('zfcuser/logout'); $lib = "Déconnexion"; $title = "Supprime les informations de connexion"; } if ($this->getTranslator()) { $lib = $this->getTranslator()->translate($lib, $this->getTranslatorTextDomain()); $title = $this->getTranslator()->translate($title, $this->getTranslatorTextDomain()); } $link = sprintf($template, $href, $title, $lib); return $link; } } No newline at end of file src/UnicaenUtilisateur/View/Helper/UserConnectionFactory.php 0 → 100644 +27 −0 Original line number Diff line number Diff line <?php namespace UnicaenUtilisateur\View\Helper; use Interop\Container\ContainerInterface; use Zend\ServiceManager\FactoryInterface; use Zend\ServiceManager\ServiceLocatorInterface; /** * Description of UserConnectionFactory * * @author Bertrand GAUTHIER <bertrand.gauthier at unicaen.fr> */ class UserConnectionFactory implements FactoryInterface { public function createService(ServiceLocatorInterface $helperPluginManager) { return $this->__invoke($helperPluginManager, '?'); } public function __invoke(ContainerInterface $container, $requestedName, array $options = null) { $authUserContext = $container->get('authUserContext'); return new UserConnection($authUserContext); } } No newline at end of file src/UnicaenUtilisateur/View/Helper/UserCurrent.php +17 −13 Original line number Diff line number Diff line Loading @@ -35,24 +35,30 @@ class UserCurrent extends UserAbstract * * @return string */ public function __toString() public function __toString(): string { $id = 'user-current-info'; $userStatusHelper = $this->getView()->plugin('userStatus'); $identification = $userStatusHelper(false) . ""; $userStatusHelper = $this->getView()->plugin('userStatus'); /* @var $userStatusHelper UserStatus */ $status = $userStatusHelper(false); $userProfileSelectable = true; if ($this->getIdentity()) { if ($userProfileSelectable) { // DS : cas où aucun rôle n'est sélectionné, on affiche le rôle "user" $role = $this->getUserContext()->getSelectedIdentityRole() ?: $this->getUserContext()->getIdentityRole('user'); $status = sprintf("<small>%s</small>", !method_exists($role, '__toString') ? $role->getRoleId() : $role); $role = $this->getUserContext()->getSelectedIdentityRole(); // cas où aucun rôle n'est sélectionné : on affiche le 1er rôle sélectionnable ou sinon "user" if ($role === null) { $selectableRoles = $this->getUserContext()->getSelectableIdentityRoles(); $role = current($selectableRoles) ?: $this->getUserContext()->getIdentityRole('user'); } $status .= sprintf(", <small class='role-libelle'>%s</small>", !method_exists($role, '__toString') ? $role->getRoleId() : $role); } $userProfileHelper = $this->getView()->plugin('userProfile'); $userProfileHelper = $this->getView()->plugin('userProfile'); /* @var $userProfileHelper UserProfile */ $userProfileHelper->setUserProfileSelectable($userProfileSelectable); $userInfoHelper = $this->getView()->plugin('userInfo'); $userInfoHelper = $this->getView()->plugin('userInfo'); /* @var $userInfoHelper UserInfo */ $content = $userProfileHelper . $userInfoHelper($this->getAffectationFineSiDispo()); } Loading @@ -78,15 +84,13 @@ class UserCurrent extends UserAbstract data-toggle="popover" data-html="true" data-content="$content" href="#"> <table style="color:var(--header-color);background: var(--header-background);"><tr><td>$identification</td></tr><tr><td style="text-align: right">$status</td></tr></table> </a> href="#">$status<span class="caret"></span></a> EOS; $out .= PHP_EOL; $js = <<<EOS $(function() { $("#$id").popover({ html: true, container: '#navbar' }); $("#$id").popover({ html: true, sanitize: false, container: '#navbar' }); }); EOS; $this->getView()->plugin('inlineScript')->offsetSetScript(1000, $js); Loading Loading
config/module.config.php +6 −0 Original line number Diff line number Diff line Loading @@ -5,6 +5,8 @@ use Doctrine\ORM\Mapping\Driver\XmlDriver; use UnicaenUtilisateur\Event\UserRoleSelectedEventListener; use UnicaenUtilisateur\ORM\Event\Listeners\HistoriqueListener; use UnicaenUtilisateur\ORM\Event\Listeners\HistoriqueListenerFactory; use UnicaenUtilisateur\View\Helper\UserConnection; use UnicaenUtilisateur\View\Helper\UserConnectionFactory; use UnicaenUtilisateur\View\Helper\UserCurrent; use UnicaenUtilisateur\View\Helper\UserCurrentFactory; use UnicaenUtilisateur\View\Helper\UserInfo; Loading @@ -17,6 +19,8 @@ use UnicaenUtilisateur\View\Helper\UserProfileSelectRadioItem; use UnicaenUtilisateur\View\Helper\UserProfileSelectRadioItemFactory; use UnicaenUtilisateur\View\Helper\UserStatus; use UnicaenUtilisateur\View\Helper\UserStatusFactory; use UnicaenUtilisateur\View\Helper\UserUsurpationHelper; use UnicaenUtilisateur\View\Helper\UserUsurpationHelperFactory; return [ 'doctrine' => [ Loading Loading @@ -68,12 +72,14 @@ return [ 'userProfileSelectRadioItem' => UserProfileSelectRadioItem::class, ], 'factories' => [ UserConnection::class => UserConnectionFactory::class, UserCurrent::class => UserCurrentFactory::class, UserStatus::class => UserStatusFactory::class, UserProfile::class => UserProfileFactory::class, UserInfo::class => UserInfoFactory::class, UserProfileSelect::class => UserProfileSelectFactory::class, UserProfileSelectRadioItem::class => UserProfileSelectRadioItemFactory::class, UserUsurpationHelper::class => UserUsurpationHelperFactory::class, ], ], ];
src/UnicaenUtilisateur/View/Helper/UserAbstract.php +4 −1 Original line number Diff line number Diff line Loading @@ -12,6 +12,9 @@ use Zend\I18n\View\Helper\AbstractTranslatorHelper; */ abstract class UserAbstract extends AbstractTranslatorHelper { /** * @var UserContext */ protected $userContext; /** Loading @@ -22,7 +25,7 @@ abstract class UserAbstract extends AbstractTranslatorHelper /** * Constructeur. * * @param UserContext $userContext * @param UserContext|null $userContext */ public function __construct(UserContext $userContext = null) { Loading
src/UnicaenUtilisateur/View/Helper/UserConnection.php 0 → 100644 +64 −0 Original line number Diff line number Diff line <?php namespace UnicaenUtilisateur\View\Helper; /** * Aide de vue de génération du lien de connexion/déconnexion à l'appli selon qu'un * utilisateur est connecté ou pas. * * @author Bertrand GAUTHIER <bertrand.gauthier@unicaen.fr> */ class UserConnection extends UserAbstract { /** * Point d'entrée. * * @return UserConnection */ public function __invoke() { return $this; } /** * Retourne le code HTML généré par cette aide de vue. * * @return string */ public function __toString() { $template = '%s'; $out = sprintf($template, $this->createConnectionLink()); return $out; } /** * * @return string */ protected function createConnectionLink() { $identity = $this->getIdentity(); $urlHelper = $this->getView()->plugin('url'); $template = '<a class="navbar-link user-connection" href="%s" title="%s">%s</a>'; if (!$identity) { $href = $urlHelper('zfcuser/login'); $lib = "Connexion"; $title = "Affiche le formulaire d'authentification"; } else { $href = $urlHelper('zfcuser/logout'); $lib = "Déconnexion"; $title = "Supprime les informations de connexion"; } if ($this->getTranslator()) { $lib = $this->getTranslator()->translate($lib, $this->getTranslatorTextDomain()); $title = $this->getTranslator()->translate($title, $this->getTranslatorTextDomain()); } $link = sprintf($template, $href, $title, $lib); return $link; } } No newline at end of file
src/UnicaenUtilisateur/View/Helper/UserConnectionFactory.php 0 → 100644 +27 −0 Original line number Diff line number Diff line <?php namespace UnicaenUtilisateur\View\Helper; use Interop\Container\ContainerInterface; use Zend\ServiceManager\FactoryInterface; use Zend\ServiceManager\ServiceLocatorInterface; /** * Description of UserConnectionFactory * * @author Bertrand GAUTHIER <bertrand.gauthier at unicaen.fr> */ class UserConnectionFactory implements FactoryInterface { public function createService(ServiceLocatorInterface $helperPluginManager) { return $this->__invoke($helperPluginManager, '?'); } public function __invoke(ContainerInterface $container, $requestedName, array $options = null) { $authUserContext = $container->get('authUserContext'); return new UserConnection($authUserContext); } } No newline at end of file
src/UnicaenUtilisateur/View/Helper/UserCurrent.php +17 −13 Original line number Diff line number Diff line Loading @@ -35,24 +35,30 @@ class UserCurrent extends UserAbstract * * @return string */ public function __toString() public function __toString(): string { $id = 'user-current-info'; $userStatusHelper = $this->getView()->plugin('userStatus'); $identification = $userStatusHelper(false) . ""; $userStatusHelper = $this->getView()->plugin('userStatus'); /* @var $userStatusHelper UserStatus */ $status = $userStatusHelper(false); $userProfileSelectable = true; if ($this->getIdentity()) { if ($userProfileSelectable) { // DS : cas où aucun rôle n'est sélectionné, on affiche le rôle "user" $role = $this->getUserContext()->getSelectedIdentityRole() ?: $this->getUserContext()->getIdentityRole('user'); $status = sprintf("<small>%s</small>", !method_exists($role, '__toString') ? $role->getRoleId() : $role); $role = $this->getUserContext()->getSelectedIdentityRole(); // cas où aucun rôle n'est sélectionné : on affiche le 1er rôle sélectionnable ou sinon "user" if ($role === null) { $selectableRoles = $this->getUserContext()->getSelectableIdentityRoles(); $role = current($selectableRoles) ?: $this->getUserContext()->getIdentityRole('user'); } $status .= sprintf(", <small class='role-libelle'>%s</small>", !method_exists($role, '__toString') ? $role->getRoleId() : $role); } $userProfileHelper = $this->getView()->plugin('userProfile'); $userProfileHelper = $this->getView()->plugin('userProfile'); /* @var $userProfileHelper UserProfile */ $userProfileHelper->setUserProfileSelectable($userProfileSelectable); $userInfoHelper = $this->getView()->plugin('userInfo'); $userInfoHelper = $this->getView()->plugin('userInfo'); /* @var $userInfoHelper UserInfo */ $content = $userProfileHelper . $userInfoHelper($this->getAffectationFineSiDispo()); } Loading @@ -78,15 +84,13 @@ class UserCurrent extends UserAbstract data-toggle="popover" data-html="true" data-content="$content" href="#"> <table style="color:var(--header-color);background: var(--header-background);"><tr><td>$identification</td></tr><tr><td style="text-align: right">$status</td></tr></table> </a> href="#">$status<span class="caret"></span></a> EOS; $out .= PHP_EOL; $js = <<<EOS $(function() { $("#$id").popover({ html: true, container: '#navbar' }); $("#$id").popover({ html: true, sanitize: false, container: '#navbar' }); }); EOS; $this->getView()->plugin('inlineScript')->offsetSetScript(1000, $js); Loading