Skip to content
Snippets Groups Projects
Commit 058ae8f8 authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

Merge branch 'fix-cas' into 'master'

Fix cas

See merge request !1
parents bd271be7 eee8df45
No related branches found
No related tags found
1 merge request!1Fix cas
<?php
namespace UnicaenAuth\Authentication\Adapter;
use phpCAS;
use UnicaenApp\Exception;
use UnicaenApp\Mapper\Ldap\People as LdapPeopleMapper;
use UnicaenAuth\Options\ModuleOptions;
use UnicaenAuth\Service\User;
use Zend\Authentication\Exception\UnexpectedValueException;
use Zend\Authentication\Result as AuthenticationResult;
use Zend\EventManager\EventManager;
......@@ -48,6 +50,11 @@ class Cas extends AbstractAdapter implements ServiceManagerAwareInterface, Event
*/
protected $casClient;
/**
* @var LdapPeopleMapper
*/
protected $ldapPeopleMapper;
/**
* Réalise l'authentification.
*
......@@ -94,7 +101,12 @@ class Cas extends AbstractAdapter implements ServiceManagerAwareInterface, Event
$e->setCode(AuthenticationResult::SUCCESS)
->setMessages(['Authentication successful.']);
$this->getEventManager()->trigger('userAuthenticated', $e);
// recherche de l'individu dans l'annuaire LDAP (il existe forcément puisque l'auth CAS a réussi)
$ldapPeople = $this->getLdapPeopleMapper()->findOneByUsername($identity);
/* @var $userService User */
$userService = $this->getServiceManager()->get('unicaen-auth_user_service');
$userService->userAuthenticated($ldapPeople);
}
/**
......@@ -188,6 +200,31 @@ class Cas extends AbstractAdapter implements ServiceManagerAwareInterface, Event
return $this->options;
}
/**
* get ldap people mapper
*
* @return LdapPeopleMapper
*/
public function getLdapPeopleMapper()
{
if (null === $this->ldapPeopleMapper) {
$this->ldapPeopleMapper = $this->getServiceManager()->get('ldap_people_mapper');
}
return $this->ldapPeopleMapper;
}
/**
* set ldap people mapper
*
* @param LdapPeopleMapper $mapper
* @return self
*/
public function setLdapPeopleMapper(LdapPeopleMapper $mapper)
{
$this->ldapPeopleMapper = $mapper;
return $this;
}
/**
* Get service manager
*
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment