Loading config/module.config.php +1 −1 Original line number Diff line number Diff line Loading @@ -494,7 +494,7 @@ return [ 'UnicaenApp\HistoriqueListener' => HistoriqueListenerFactory::class, 'UnicaenAuth\HistoriqueListener' => HistoriqueListenerFactory::class, \UnicaenAuth\Event\EventManager::class => \UnicaenAuth\Event\EventManagerFactory::class, \UnicaenAuth\Event\EventManager::class => \UnicaenAuth\Event\EventManagerFactory::class ], 'lazy_services' => [ // Mapping services to their class names is required since the ServiceManager is not a declarative DIC. Loading data/schema_postgresql.sql +1 −1 Original line number Diff line number Diff line Loading @@ -18,7 +18,7 @@ CREATE TABLE user_role ( is_default SMALLINT NOT NULL DEFAULT 0, parent_id BIGINT DEFAULT NULL, ldap_filter varchar(255) DEFAULT NULL, accessible_exterieur SMALLINT NOT NULL DEFAULT 1, accessible_exterieur BOOLEAN NOT NULL DEFAULT true, FOREIGN KEY (parent_id) REFERENCES user_role (id) ON DELETE SET NULL ); CREATE UNIQUE INDEX user_role_roleid_unique ON user_role (role_id); Loading src/UnicaenAuth/Form/Droits/RoleForm.php +15 −0 Original line number Diff line number Diff line Loading @@ -53,6 +53,16 @@ class RoleForm extends Form implements ServiceLocatorAwareInterface, InputFilter ], ]); $this->add([ 'type' => 'Checkbox', 'name' => 'accessible-exterieur', 'options' => [ 'label' => 'Accessible de l\'extérieur', 'checked_value' => '1', 'unchecked_value' => '0', ], ]); $this->add([ 'name' => 'id', 'type' => 'Hidden', Loading Loading @@ -88,6 +98,9 @@ class RoleForm extends Form implements ServiceLocatorAwareInterface, InputFilter 'parent' => [ 'required' => false, ], 'accessible-exterieur' => [ 'required' => true, ], ]; } } Loading Loading @@ -117,6 +130,7 @@ class RoleFormHydrator implements HydratorInterface $object->setRoleId($data['role-id']); $object->setLdapFilter($data['ldap-filter'] ?: null); $object->setParent($this->getServiceRole()->get($data['parent'])); $object->setAccessibleExterieur($data['accessible-exterieur'] == '1'); return $object; } Loading @@ -135,6 +149,7 @@ class RoleFormHydrator implements HydratorInterface 'role-id' => $object->getRoleId(), 'ldap-filter' => $object->getLdapFilter(), 'parent' => $object->getParent() ? $object->getParent()->getId() : null, 'accessible-exterieur' => $object->getAccessibleExterieur() ? '1' : '0', ]; return $data; Loading src/UnicaenAuth/Provider/Identity/Db.php +17 −0 Original line number Diff line number Diff line Loading @@ -4,6 +4,7 @@ namespace UnicaenAuth\Provider\Identity; use BjyAuthorize\Provider\Identity\AuthenticationIdentityProvider; use BjyAuthorize\Provider\Role\ProviderInterface; use UnicaenApp\Entity\Ldap\People; use UnicaenApp\HostLocalization\HostLocalizationAwareTrait; use UnicaenAuth\Entity\Db\AbstractRole; use UnicaenAuth\Service\Traits\RoleServiceAwareTrait; use Zend\Ldap\Ldap; Loading @@ -23,12 +24,19 @@ use Traversable; class Db extends AuthenticationIdentityProvider implements ChainableProvider, \BjyAuthorize\Provider\Identity\ProviderInterface { use RoleServiceAwareTrait; use HostLocalizationAwareTrait; /** * @var Ldap */ private $ldap; /** * @var */ private $detectionContexteExecution; /** Loading Loading @@ -84,6 +92,15 @@ class Db extends AuthenticationIdentityProvider implements ChainableProvider, \B } } $inEtablissement = $this->getHostLocalization()->inEtablissement(); if (!$inEtablissement) { // Si on n'est pas dans l'établissement, alors on filtre les rôles disponibles foreach ($roles as $i => $role) { if ($role instanceof AbstractRole) { if (!$role->getAccessibleExterieur()) unset($roles[$i]); } } } return $roles; } Loading src/UnicaenAuth/Provider/Identity/DbServiceFactory.php +1 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ class DbServiceFactory implements FactoryInterface { $user = $container->get('zfcuser_user_service'); $identityProvider = new Db($user->getAuthService()); $identityProvider->setHostLocalization($container->get('HostLocalization')); $unicaenAppOptions = $container->get('unicaen-app_module_options'); /* @var $unicaenAppOptions ModuleOptions */ Loading Loading
config/module.config.php +1 −1 Original line number Diff line number Diff line Loading @@ -494,7 +494,7 @@ return [ 'UnicaenApp\HistoriqueListener' => HistoriqueListenerFactory::class, 'UnicaenAuth\HistoriqueListener' => HistoriqueListenerFactory::class, \UnicaenAuth\Event\EventManager::class => \UnicaenAuth\Event\EventManagerFactory::class, \UnicaenAuth\Event\EventManager::class => \UnicaenAuth\Event\EventManagerFactory::class ], 'lazy_services' => [ // Mapping services to their class names is required since the ServiceManager is not a declarative DIC. Loading
data/schema_postgresql.sql +1 −1 Original line number Diff line number Diff line Loading @@ -18,7 +18,7 @@ CREATE TABLE user_role ( is_default SMALLINT NOT NULL DEFAULT 0, parent_id BIGINT DEFAULT NULL, ldap_filter varchar(255) DEFAULT NULL, accessible_exterieur SMALLINT NOT NULL DEFAULT 1, accessible_exterieur BOOLEAN NOT NULL DEFAULT true, FOREIGN KEY (parent_id) REFERENCES user_role (id) ON DELETE SET NULL ); CREATE UNIQUE INDEX user_role_roleid_unique ON user_role (role_id); Loading
src/UnicaenAuth/Form/Droits/RoleForm.php +15 −0 Original line number Diff line number Diff line Loading @@ -53,6 +53,16 @@ class RoleForm extends Form implements ServiceLocatorAwareInterface, InputFilter ], ]); $this->add([ 'type' => 'Checkbox', 'name' => 'accessible-exterieur', 'options' => [ 'label' => 'Accessible de l\'extérieur', 'checked_value' => '1', 'unchecked_value' => '0', ], ]); $this->add([ 'name' => 'id', 'type' => 'Hidden', Loading Loading @@ -88,6 +98,9 @@ class RoleForm extends Form implements ServiceLocatorAwareInterface, InputFilter 'parent' => [ 'required' => false, ], 'accessible-exterieur' => [ 'required' => true, ], ]; } } Loading Loading @@ -117,6 +130,7 @@ class RoleFormHydrator implements HydratorInterface $object->setRoleId($data['role-id']); $object->setLdapFilter($data['ldap-filter'] ?: null); $object->setParent($this->getServiceRole()->get($data['parent'])); $object->setAccessibleExterieur($data['accessible-exterieur'] == '1'); return $object; } Loading @@ -135,6 +149,7 @@ class RoleFormHydrator implements HydratorInterface 'role-id' => $object->getRoleId(), 'ldap-filter' => $object->getLdapFilter(), 'parent' => $object->getParent() ? $object->getParent()->getId() : null, 'accessible-exterieur' => $object->getAccessibleExterieur() ? '1' : '0', ]; return $data; Loading
src/UnicaenAuth/Provider/Identity/Db.php +17 −0 Original line number Diff line number Diff line Loading @@ -4,6 +4,7 @@ namespace UnicaenAuth\Provider\Identity; use BjyAuthorize\Provider\Identity\AuthenticationIdentityProvider; use BjyAuthorize\Provider\Role\ProviderInterface; use UnicaenApp\Entity\Ldap\People; use UnicaenApp\HostLocalization\HostLocalizationAwareTrait; use UnicaenAuth\Entity\Db\AbstractRole; use UnicaenAuth\Service\Traits\RoleServiceAwareTrait; use Zend\Ldap\Ldap; Loading @@ -23,12 +24,19 @@ use Traversable; class Db extends AuthenticationIdentityProvider implements ChainableProvider, \BjyAuthorize\Provider\Identity\ProviderInterface { use RoleServiceAwareTrait; use HostLocalizationAwareTrait; /** * @var Ldap */ private $ldap; /** * @var */ private $detectionContexteExecution; /** Loading Loading @@ -84,6 +92,15 @@ class Db extends AuthenticationIdentityProvider implements ChainableProvider, \B } } $inEtablissement = $this->getHostLocalization()->inEtablissement(); if (!$inEtablissement) { // Si on n'est pas dans l'établissement, alors on filtre les rôles disponibles foreach ($roles as $i => $role) { if ($role instanceof AbstractRole) { if (!$role->getAccessibleExterieur()) unset($roles[$i]); } } } return $roles; } Loading
src/UnicaenAuth/Provider/Identity/DbServiceFactory.php +1 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ class DbServiceFactory implements FactoryInterface { $user = $container->get('zfcuser_user_service'); $identityProvider = new Db($user->getAuthService()); $identityProvider->setHostLocalization($container->get('HostLocalization')); $unicaenAppOptions = $container->get('unicaen-app_module_options'); /* @var $unicaenAppOptions ModuleOptions */ Loading