Loading src/UnicaenLdap/Entity/Group.php +3 −3 Original line number Diff line number Diff line Loading @@ -67,11 +67,11 @@ class Group extends Entity */ public function getPeople($orderBy = null) { /* @var $people \UnicaenLdap\Service\People */ $people = $this->getService()->getLdapServiceForEntityClass(\UnicaenLdap\Service\People::class); /* @var $peopleService \UnicaenLdap\Service\People */ $peopleService = $this->getService()->getLdapPeopleService(); /** @var People[] $result */ $result = $people->getAllBy($this->get('member'), 'dn', $orderBy); $result = $peopleService->getAllBy($this->get('member'), 'dn', $orderBy); return $result; } Loading src/UnicaenLdap/Entity/People.php +16 −33 Original line number Diff line number Diff line Loading @@ -133,9 +133,9 @@ class People extends Entity */ public function getGroups(DateTime $dateObservation = null, $orderBy = null) { $group = $this->getService()->getLdapServiceForEntityClass(\UnicaenLdap\Service\Group::class); $groupService = $this->getService()->getLdapGroupService(); return $group->filterValids($group->getAllBy($this->get('memberOf'), 'dn', $orderBy), $dateObservation); return $groupService->filterValids($groupService->getAllBy($this->get('memberOf'), 'dn', $orderBy), $dateObservation); } /** Loading Loading @@ -168,67 +168,50 @@ class People extends Entity return 0 === strpos($this->uid, 'i'); } /** * @var \UnicaenLdap\Service\Structure */ protected $ldapStructureService; /** * @return \UnicaenLdap\Service\Structure */ protected function getLdapStructureService() { if (null === $this->ldapStructureService) { $this->ldapStructureService = $this->getService()->getLdapServiceForEntityClass(\UnicaenLdap\Service\Structure::class); } return $this->ldapStructureService; } /** * Retourne les structures auxquelles appartiennent la personne * * @return Structure[] * @return Entity[]|Structure[] */ public function getEduPersonOrgUnit() { $structure = $this->getLdapStructureService(); $structureService = $this->getService()->getLdapStructureService(); $dn = $this->eduPersonOrgUnitDN; if (empty($dn)) return null; return $structure->getAllBy($dn, 'dn'); return $structureService->getAllBy($dn, 'dn'); } /** * Retourne la structure principale à laquelle appartient la personne * * @return Structure * @return Entity|Structure * @throws \UnicaenLdap\Exception */ public function getEduPersonPrimaryOrgUnit() { $structure = $this->getLdapStructureService(); $structureService = $this->getService()->getLdapStructureService(); $dn = $this->eduPersonPrimaryOrgUnitDN; if (empty($dn)) return null; return $structure->getBy($dn, 'dn'); return $structureService->getBy($dn, 'dn'); } /** * Retourne la structure d'affectation de la personne * * @todo à terminer * @return Structure[] * @return Entity|Structure * @throws \Exception */ public function getEntiteAffectation() { throw new \Exception('Méthode pas finie'); $structure = $this->getLdapStructureService(); $structureService = $this->getService()->getLdapStructureService(); $codes = $this->getNode()->getAttribute('supannEntiteAffectation'); var_dump($codes); return $structure->getBy($dn, 'dn'); return $structureService->getBy($dn, 'dn'); } /** Loading @@ -241,7 +224,7 @@ class People extends Entity public function getEntiteAffectationPrincipale() { throw new \Exception('Méthode pas finie'); $structure = $this->getLdapStructureService(); $structureService = $this->getService()->getLdapStructureService(); $codes = []; $affectations = $this->getNode()->getAttribute('supannAffectation'); Loading @@ -251,7 +234,7 @@ class People extends Entity $code = $this->supannAffectation; if (empty($dn)) return null; return $structure->getBy($dn, 'dn'); return $structureService->getBy($dn, 'dn'); } /** Loading @@ -264,13 +247,13 @@ class People extends Entity public function getAffectationDescription() { throw new \Exception('Méthode pas finie'); $structure = $this->getLdapStructureService(); $structureService = $this->getService()->getLdapStructureService(); list($code, $description) = explode(';', $this->supannAffectation); $code = $this->supannAffectation; if (empty($dn)) return null; return $structure->getBy($dn, 'dn'); return $structureService->getBy($dn, 'dn'); } /** Loading src/UnicaenLdap/Service/AbstractService.php +12 −32 Original line number Diff line number Diff line Loading @@ -17,8 +17,19 @@ use Zend\Stdlib\ErrorHandler; * * @author Laurent Lécluse <laurent.lecluse at unicaen.fr> */ abstract class AbstractService abstract class AbstractService implements LdapPeopleServiceAwareInterface, LdapStructureServiceAwareInterface, LdapGroupServiceAwareInterface, LdapSystemServiceAwareInterface, LdapGenericServiceAwareInterface { use LdapPeopleServiceAwareTrait; use LdapStructureServiceAwareTrait; use LdapGroupServiceAwareTrait; use LdapSystemServiceAwareTrait; use LdapGenericServiceAwareTrait; /** * Limite de recherche par défaut */ Loading Loading @@ -53,37 +64,6 @@ abstract class AbstractService */ protected $count; /** * @var array */ protected $ldapServicesByEntityClass = [ \UnicaenLdap\Entity\People::class => null, \UnicaenLdap\Entity\Structure::class => null, \UnicaenLdap\Entity\System::class => null, \UnicaenLdap\Entity\Group::class => null, \UnicaenLdap\Entity\Generic::class => null, ]; /** * @param array */ public function setLdapServicesByEntityClass(array $ldapServicesByEntityClass) { $this->ldapServicesByEntityClass = $ldapServicesByEntityClass; } /** * @param string $entityClass * @return mixed */ public function getLdapServiceForEntityClass($entityClass) { if (! isset($this->ldapServicesByEntityClass[$entityClass])) { throw new RuntimeException("Le service de recherche LDAP pour la classe d'entité $entityClass n'a pas été injecté."); } return $this->ldapServicesByEntityClass[$entityClass]; } /** * Retourne le type du service Loading src/UnicaenLdap/Service/GenericFactory.php +26 −16 Original line number Diff line number Diff line Loading @@ -3,14 +3,11 @@ namespace UnicaenLdap\Service; use Interop\Container\ContainerInterface; use UnicaenLdap\Ldap; use UnicaenLdap\Service; use Zend\ServiceManager\FactoryInterface; use Zend\ServiceManager\ServiceLocatorInterface; /** * * * @author Unicaen */ class GenericFactory implements FactoryInterface { public function createService(ServiceLocatorInterface $serviceLocator) Loading @@ -18,22 +15,35 @@ class GenericFactory implements FactoryInterface return $this->__invoke($serviceLocator, '?'); } /** * Create service * * @param ContainerInterface $container * @param string $requestedName * @param array|null $options * @return object|Generic */ public function __invoke(ContainerInterface $container, $requestedName, array $options = null) { $service = new Generic(); /** @var \UnicaenLdap\Ldap $ldap */ /** * @var Ldap $ldap * @var Service\People $ldapPeopleService * @var Service\Structure $ldapStructureService * @var Service\Group $ldapGroupService * @var Service\System $ldapSystemService */ $ldap = $container->get('ldap'); $ldapPeopleService = $container->get('ldapServicePeople'); $ldapStructureService = $container->get('ldapServiceStructure'); $ldapGroupService = $container->get('ldapServiceGroup'); $ldapSystemService = $container->get('ldapServiceSystem'); $service = new Generic(); $service->setLdap($ldap); $service->setLdapServicesByEntityClass([ \UnicaenLdap\Entity\People::class => $container->get('ldapServicePeople'), \UnicaenLdap\Entity\Structure::class => $container->get('ldapServiceStructure'), \UnicaenLdap\Entity\System::class => $container->get('ldapServiceSystem'), \UnicaenLdap\Entity\Group::class => $container->get('ldapServiceGroup'), // \UnicaenLdap\Entity\Generic::class => $container->get('ldapServiceGeneric'), ]); $service->setLdapPeopleService($ldapPeopleService); $service->setLdapStructureService($ldapStructureService); $service->setLdapGroupService($ldapGroupService); $service->setLdapSystemService($ldapSystemService); return $service; } Loading src/UnicaenLdap/Service/GroupFactory.php +26 −16 Original line number Diff line number Diff line Loading @@ -3,14 +3,11 @@ namespace UnicaenLdap\Service; use Interop\Container\ContainerInterface; use UnicaenLdap\Ldap; use UnicaenLdap\Service; use Zend\ServiceManager\FactoryInterface; use Zend\ServiceManager\ServiceLocatorInterface; /** * * * @author Unicaen */ class GroupFactory implements FactoryInterface { public function createService(ServiceLocatorInterface $serviceLocator) Loading @@ -18,22 +15,35 @@ class GroupFactory implements FactoryInterface return $this->__invoke($serviceLocator, '?'); } /** * Create service * * @param ContainerInterface $container * @param string $requestedName * @param array|null $options * @return object|Group */ public function __invoke(ContainerInterface $container, $requestedName, array $options = null) { $service = new Group(); /** @var \UnicaenLdap\Ldap $ldap */ /** * @var Ldap $ldap * @var Service\People $ldapPeopleService * @var Service\Structure $ldapStructureService * @var Service\System $ldapSystemService * @var Service\Generic $ldapGenericService */ $ldap = $container->get('ldap'); $ldapPeopleService = $container->get('ldapServicePeople'); $ldapStructureService = $container->get('ldapServiceStructure'); $ldapSystemService = $container->get('ldapServiceSystem'); $ldapGenericService = $container->get('ldapServiceGeneric'); $service = new Group(); $service->setLdap($ldap); $service->setLdapServicesByEntityClass([ \UnicaenLdap\Entity\People::class => $container->get('ldapServicePeople'), \UnicaenLdap\Entity\Structure::class => $container->get('ldapServiceStructure'), \UnicaenLdap\Entity\System::class => $container->get('ldapServiceSystem'), // \UnicaenLdap\Entity\Group::class => $container->get('ldapServiceGroup'), \UnicaenLdap\Entity\Generic::class => $container->get('ldapServiceGeneric'), ]); $service->setLdapPeopleService($ldapPeopleService); $service->setLdapStructureService($ldapStructureService); $service->setLdapSystemService($ldapSystemService); $service->setLdapGenericService($ldapGenericService); return $service; } Loading Loading
src/UnicaenLdap/Entity/Group.php +3 −3 Original line number Diff line number Diff line Loading @@ -67,11 +67,11 @@ class Group extends Entity */ public function getPeople($orderBy = null) { /* @var $people \UnicaenLdap\Service\People */ $people = $this->getService()->getLdapServiceForEntityClass(\UnicaenLdap\Service\People::class); /* @var $peopleService \UnicaenLdap\Service\People */ $peopleService = $this->getService()->getLdapPeopleService(); /** @var People[] $result */ $result = $people->getAllBy($this->get('member'), 'dn', $orderBy); $result = $peopleService->getAllBy($this->get('member'), 'dn', $orderBy); return $result; } Loading
src/UnicaenLdap/Entity/People.php +16 −33 Original line number Diff line number Diff line Loading @@ -133,9 +133,9 @@ class People extends Entity */ public function getGroups(DateTime $dateObservation = null, $orderBy = null) { $group = $this->getService()->getLdapServiceForEntityClass(\UnicaenLdap\Service\Group::class); $groupService = $this->getService()->getLdapGroupService(); return $group->filterValids($group->getAllBy($this->get('memberOf'), 'dn', $orderBy), $dateObservation); return $groupService->filterValids($groupService->getAllBy($this->get('memberOf'), 'dn', $orderBy), $dateObservation); } /** Loading Loading @@ -168,67 +168,50 @@ class People extends Entity return 0 === strpos($this->uid, 'i'); } /** * @var \UnicaenLdap\Service\Structure */ protected $ldapStructureService; /** * @return \UnicaenLdap\Service\Structure */ protected function getLdapStructureService() { if (null === $this->ldapStructureService) { $this->ldapStructureService = $this->getService()->getLdapServiceForEntityClass(\UnicaenLdap\Service\Structure::class); } return $this->ldapStructureService; } /** * Retourne les structures auxquelles appartiennent la personne * * @return Structure[] * @return Entity[]|Structure[] */ public function getEduPersonOrgUnit() { $structure = $this->getLdapStructureService(); $structureService = $this->getService()->getLdapStructureService(); $dn = $this->eduPersonOrgUnitDN; if (empty($dn)) return null; return $structure->getAllBy($dn, 'dn'); return $structureService->getAllBy($dn, 'dn'); } /** * Retourne la structure principale à laquelle appartient la personne * * @return Structure * @return Entity|Structure * @throws \UnicaenLdap\Exception */ public function getEduPersonPrimaryOrgUnit() { $structure = $this->getLdapStructureService(); $structureService = $this->getService()->getLdapStructureService(); $dn = $this->eduPersonPrimaryOrgUnitDN; if (empty($dn)) return null; return $structure->getBy($dn, 'dn'); return $structureService->getBy($dn, 'dn'); } /** * Retourne la structure d'affectation de la personne * * @todo à terminer * @return Structure[] * @return Entity|Structure * @throws \Exception */ public function getEntiteAffectation() { throw new \Exception('Méthode pas finie'); $structure = $this->getLdapStructureService(); $structureService = $this->getService()->getLdapStructureService(); $codes = $this->getNode()->getAttribute('supannEntiteAffectation'); var_dump($codes); return $structure->getBy($dn, 'dn'); return $structureService->getBy($dn, 'dn'); } /** Loading @@ -241,7 +224,7 @@ class People extends Entity public function getEntiteAffectationPrincipale() { throw new \Exception('Méthode pas finie'); $structure = $this->getLdapStructureService(); $structureService = $this->getService()->getLdapStructureService(); $codes = []; $affectations = $this->getNode()->getAttribute('supannAffectation'); Loading @@ -251,7 +234,7 @@ class People extends Entity $code = $this->supannAffectation; if (empty($dn)) return null; return $structure->getBy($dn, 'dn'); return $structureService->getBy($dn, 'dn'); } /** Loading @@ -264,13 +247,13 @@ class People extends Entity public function getAffectationDescription() { throw new \Exception('Méthode pas finie'); $structure = $this->getLdapStructureService(); $structureService = $this->getService()->getLdapStructureService(); list($code, $description) = explode(';', $this->supannAffectation); $code = $this->supannAffectation; if (empty($dn)) return null; return $structure->getBy($dn, 'dn'); return $structureService->getBy($dn, 'dn'); } /** Loading
src/UnicaenLdap/Service/AbstractService.php +12 −32 Original line number Diff line number Diff line Loading @@ -17,8 +17,19 @@ use Zend\Stdlib\ErrorHandler; * * @author Laurent Lécluse <laurent.lecluse at unicaen.fr> */ abstract class AbstractService abstract class AbstractService implements LdapPeopleServiceAwareInterface, LdapStructureServiceAwareInterface, LdapGroupServiceAwareInterface, LdapSystemServiceAwareInterface, LdapGenericServiceAwareInterface { use LdapPeopleServiceAwareTrait; use LdapStructureServiceAwareTrait; use LdapGroupServiceAwareTrait; use LdapSystemServiceAwareTrait; use LdapGenericServiceAwareTrait; /** * Limite de recherche par défaut */ Loading Loading @@ -53,37 +64,6 @@ abstract class AbstractService */ protected $count; /** * @var array */ protected $ldapServicesByEntityClass = [ \UnicaenLdap\Entity\People::class => null, \UnicaenLdap\Entity\Structure::class => null, \UnicaenLdap\Entity\System::class => null, \UnicaenLdap\Entity\Group::class => null, \UnicaenLdap\Entity\Generic::class => null, ]; /** * @param array */ public function setLdapServicesByEntityClass(array $ldapServicesByEntityClass) { $this->ldapServicesByEntityClass = $ldapServicesByEntityClass; } /** * @param string $entityClass * @return mixed */ public function getLdapServiceForEntityClass($entityClass) { if (! isset($this->ldapServicesByEntityClass[$entityClass])) { throw new RuntimeException("Le service de recherche LDAP pour la classe d'entité $entityClass n'a pas été injecté."); } return $this->ldapServicesByEntityClass[$entityClass]; } /** * Retourne le type du service Loading
src/UnicaenLdap/Service/GenericFactory.php +26 −16 Original line number Diff line number Diff line Loading @@ -3,14 +3,11 @@ namespace UnicaenLdap\Service; use Interop\Container\ContainerInterface; use UnicaenLdap\Ldap; use UnicaenLdap\Service; use Zend\ServiceManager\FactoryInterface; use Zend\ServiceManager\ServiceLocatorInterface; /** * * * @author Unicaen */ class GenericFactory implements FactoryInterface { public function createService(ServiceLocatorInterface $serviceLocator) Loading @@ -18,22 +15,35 @@ class GenericFactory implements FactoryInterface return $this->__invoke($serviceLocator, '?'); } /** * Create service * * @param ContainerInterface $container * @param string $requestedName * @param array|null $options * @return object|Generic */ public function __invoke(ContainerInterface $container, $requestedName, array $options = null) { $service = new Generic(); /** @var \UnicaenLdap\Ldap $ldap */ /** * @var Ldap $ldap * @var Service\People $ldapPeopleService * @var Service\Structure $ldapStructureService * @var Service\Group $ldapGroupService * @var Service\System $ldapSystemService */ $ldap = $container->get('ldap'); $ldapPeopleService = $container->get('ldapServicePeople'); $ldapStructureService = $container->get('ldapServiceStructure'); $ldapGroupService = $container->get('ldapServiceGroup'); $ldapSystemService = $container->get('ldapServiceSystem'); $service = new Generic(); $service->setLdap($ldap); $service->setLdapServicesByEntityClass([ \UnicaenLdap\Entity\People::class => $container->get('ldapServicePeople'), \UnicaenLdap\Entity\Structure::class => $container->get('ldapServiceStructure'), \UnicaenLdap\Entity\System::class => $container->get('ldapServiceSystem'), \UnicaenLdap\Entity\Group::class => $container->get('ldapServiceGroup'), // \UnicaenLdap\Entity\Generic::class => $container->get('ldapServiceGeneric'), ]); $service->setLdapPeopleService($ldapPeopleService); $service->setLdapStructureService($ldapStructureService); $service->setLdapGroupService($ldapGroupService); $service->setLdapSystemService($ldapSystemService); return $service; } Loading
src/UnicaenLdap/Service/GroupFactory.php +26 −16 Original line number Diff line number Diff line Loading @@ -3,14 +3,11 @@ namespace UnicaenLdap\Service; use Interop\Container\ContainerInterface; use UnicaenLdap\Ldap; use UnicaenLdap\Service; use Zend\ServiceManager\FactoryInterface; use Zend\ServiceManager\ServiceLocatorInterface; /** * * * @author Unicaen */ class GroupFactory implements FactoryInterface { public function createService(ServiceLocatorInterface $serviceLocator) Loading @@ -18,22 +15,35 @@ class GroupFactory implements FactoryInterface return $this->__invoke($serviceLocator, '?'); } /** * Create service * * @param ContainerInterface $container * @param string $requestedName * @param array|null $options * @return object|Group */ public function __invoke(ContainerInterface $container, $requestedName, array $options = null) { $service = new Group(); /** @var \UnicaenLdap\Ldap $ldap */ /** * @var Ldap $ldap * @var Service\People $ldapPeopleService * @var Service\Structure $ldapStructureService * @var Service\System $ldapSystemService * @var Service\Generic $ldapGenericService */ $ldap = $container->get('ldap'); $ldapPeopleService = $container->get('ldapServicePeople'); $ldapStructureService = $container->get('ldapServiceStructure'); $ldapSystemService = $container->get('ldapServiceSystem'); $ldapGenericService = $container->get('ldapServiceGeneric'); $service = new Group(); $service->setLdap($ldap); $service->setLdapServicesByEntityClass([ \UnicaenLdap\Entity\People::class => $container->get('ldapServicePeople'), \UnicaenLdap\Entity\Structure::class => $container->get('ldapServiceStructure'), \UnicaenLdap\Entity\System::class => $container->get('ldapServiceSystem'), // \UnicaenLdap\Entity\Group::class => $container->get('ldapServiceGroup'), \UnicaenLdap\Entity\Generic::class => $container->get('ldapServiceGeneric'), ]); $service->setLdapPeopleService($ldapPeopleService); $service->setLdapStructureService($ldapStructureService); $service->setLdapSystemService($ldapSystemService); $service->setLdapGenericService($ldapGenericService); return $service; } Loading