Skip to content
Snippets Groups Projects
Commit 9bb7bf3c authored by Thibaut Vallee's avatar Thibaut Vallee
Browse files

correctif majeur des fichiers pour passer ZF -> Laminas

parent c29d947e
Branches
Tags 2.0.2
No related merge requests found
Pipeline #19405 passed
......@@ -3,11 +3,11 @@
namespace UnicaenUtilisateurLdapAdapter;
use Zend\Mvc\ModuleRouteListener;
use Zend\Mvc\MvcEvent;
use Zend\Stdlib\ArrayUtils;
use Zend\Stdlib\Glob;
use Zend\Config\Factory as ConfigFactory;
use Laminas\Config\Factory as ConfigFactory;
use Laminas\Mvc\ModuleRouteListener;
use Laminas\Mvc\MvcEvent;
use Laminas\Stdlib\ArrayUtils;
use Laminas\Stdlib\Glob;
class Module
{
......@@ -19,7 +19,7 @@ class Module
$moduleRouteListener->attach($eventManager);
/* Active un layout spécial si la requête est de type AJAX. Valable pour TOUS les modules de l'application. */
$eventManager->getSharedManager()->attach('Zend\Mvc\Controller\AbstractActionController', 'dispatch',
$eventManager->getSharedManager()->attach('Laminas\Mvc\Controller\AbstractActionController', 'dispatch',
function (MvcEvent $e) {
$request = $e->getRequest();
if ($request instanceof HttpRequest && $request->isXmlHttpRequest()) {
......@@ -47,7 +47,7 @@ class Module
public function getAutoloaderConfig()
{
return array(
'Zend\Loader\StandardAutoloader' => array(
'Laminas\Loader\StandardAutoloader' => array(
'namespaces' => array(
__NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
),
......
......@@ -8,8 +8,8 @@
}
],
"require": {
"unicaen/utilisateur": ">=6.0",
"unicaen/ldap": ">=4.0"
"unicaen/utilisateur": "^6.0",
"unicaen/ldap": "^4.0"
},
"autoload": {
"psr-0": {
......
......@@ -2,14 +2,15 @@
## But du module
Le but de cet adaptateur est de fournir une service effectuant une recherche dans le LDAP en garantissant le contract des
interface de `Unicaen/Utilisateur` : `RechercheIndividuServiceInterface` et `RechercheIndividuResultatInterface`.
Le but de cet adaptateur est de fournir une service effectuant une recherche dans le LDAP en garantissant le contract
des interface de `Unicaen/Utilisateur` : `RechercheIndividuServiceInterface` et `RechercheIndividuResultatInterface`.
Cela sans modification de `Unicaen/Ldap`.
## Historique des versions
**version 2.0.0** 16/02/2023
- version fournissant le service de recherche pour laminas / Php8
**version 0.1.1** 16/10/2019
- version initial fournissant le service de recherche
## Amélioration et/ou changement à venir
......
......@@ -5,7 +5,8 @@ namespace UnicaenUtilisateurLdapAdapter\Entity;
use UnicaenLdap\Entity\People;
use UnicaenUtilisateur\Service\RechercheIndividu\RechercheIndividuResultatInterface;
class LdapIndividu implements RechercheIndividuResultatInterface {
class LdapIndividu implements RechercheIndividuResultatInterface
{
/** @var \UnicaenLdap\Entity\People */
private $people;
......@@ -33,7 +34,7 @@ class LdapIndividu implements RechercheIndividuResultatInterface {
return $this->people->getId();
}
public function getUsername()
public function getUsername(string $attribut = "supannAliasLogin")
{
return $this->people->get('supannAliasLogin');
}
......
......@@ -2,17 +2,18 @@
namespace UnicaenUtilisateurLdapAdapter\Service;
use UnicaenLdap\Entity\People as PeopleEntity;
use UnicaenLdap\Exception;
use UnicaenLdap\Filter\People as PeopleFilter;
use UnicaenLdap\Service\People as PeopleService;
use UnicaenLdap\Entity\People as PeopleEntity;
use UnicaenLdap\Service\LdapPeopleServiceAwareTrait;
use UnicaenUtilisateurLdapAdapter\Entity\LdapIndividu;
use UnicaenLdap\Service\People as PeopleService;
use UnicaenUtilisateur\Exception\RuntimeException;
use UnicaenUtilisateur\Service\RechercheIndividu\RechercheIndividuResultatInterface;
use UnicaenUtilisateur\Service\RechercheIndividu\RechercheIndividuServiceInterface;
use UnicaenUtilisateurLdapAdapter\Entity\LdapIndividu;
class LdapService implements RechercheIndividuServiceInterface {
class LdapService implements RechercheIndividuServiceInterface
{
use LdapPeopleServiceAwareTrait;
/**
......@@ -58,4 +59,30 @@ class LdapService implements RechercheIndividuServiceInterface {
}
return $res;
}
public function findByUsername(string $username)
{
$people = null;
$filter = PeopleFilter::username($username);
/** @var PeopleService $ldapService */
try {
$people = $this->ldapPeopleService->search($filter);
} catch (Exception $e) {
throw new RuntimeException("Une exception ldap est survenue :", $e);
}
if(sizeof($people) > 1):
throw new RuntimeException("Plusieurs personnes correspondent au username.");
endif;
$res = null;
/** @var PeopleEntity $peep */
foreach ($people as $peep) {
$p = new LdapIndividu();
$p->setPeople($peep);
$res = $p;
}
return $res;
}
}
\ No newline at end of file
......@@ -6,13 +6,15 @@ use Interop\Container\ContainerInterface;
use UnicaenLdap\Service\People;
class LdapServiceFactory {
class LdapServiceFactory
{
/**
* @param ContainerInterface $container
* @return LdapService
*/
public function __invoke(ContainerInterface $container) {
public function __invoke(ContainerInterface $container)
{
/**
* @var People $ldapService
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment