Commit fba6e707 authored by David Surville's avatar David Surville
Browse files

Merge zf-3.x + résolution de conflits

parents e32e2493 2dca4963
Loading
Loading
Loading
Loading
+3 −3
Changes for src/UnicaenLdap/Entity/Group.php: 3 added lines, 3 removed lines.
Original line number Diff line number Diff line
@@ -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;
    }
+16 −33
Changes for src/UnicaenLdap/Entity/People.php: 16 added lines, 33 removed lines.
Original line number Diff line number Diff line
@@ -103,9 +103,9 @@ class People extends BasePeople
     */
    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);
    }

    /**
@@ -138,67 +138,50 @@ class People extends BasePeople
        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');
    }

    /**
@@ -211,7 +194,7 @@ class People extends BasePeople
    public function getEntiteAffectationPrincipale()
    {
        throw new \Exception('Méthode pas finie');
        $structure = $this->getLdapStructureService();
        $structureService = $this->getService()->getLdapStructureService();

        $codes = [];
        $affectations = $this->getNode()->getAttribute('supannAffectation');
@@ -221,7 +204,7 @@ class People extends BasePeople
        $code = $this->supannAffectation;
        if (empty($dn)) return null;

        return $structure->getBy($dn, 'dn');
        return $structureService->getBy($dn, 'dn');
    }

    /**
@@ -234,13 +217,13 @@ class People extends BasePeople
    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');
    }

    /**
+12 −32
Changes for src/UnicaenLdap/Service/AbstractService.php: 12 added lines, 32 removed lines.
Original line number Diff line number Diff line
@@ -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
     */
@@ -55,37 +66,6 @@ abstract class AbstractService
     */
    protected $code_structure_prefixe = 'HS_';

    /**
     * @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];
    }

    /**
     * Compteur utilisé dans la recherche
+26 −16
Changes for src/UnicaenLdap/Service/GenericFactory.php: 26 added lines, 16 removed lines.
Original line number Diff line number Diff line
@@ -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)
@@ -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;
    }
+26 −16
Changes for src/UnicaenLdap/Service/GroupFactory.php: 26 added lines, 16 removed lines.
Original line number Diff line number Diff line
@@ -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)
@@ -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