diff --git a/library/Class/Multimedia/AuthenticateRequest.php b/library/Class/Multimedia/AuthenticateRequest.php index 5f5e28545d44276f36f2c3e7e15fbc74b0419d3a..b44711b4840e264c704e8bce439ec13d130e3aa6 100644 --- a/library/Class/Multimedia/AuthenticateRequest.php +++ b/library/Class/Multimedia/AuthenticateRequest.php @@ -53,12 +53,14 @@ class Class_Multimedia_AuthenticateRequest { || !($poste = $request->getParam('poste')) || !($site = $request->getParam('site'))) return $this->_error('MissingParameter'); - - if (!$user = Class_Users::getLoader()->findFirstBy(array('login' => $login))) - return $this->_error('UserNotFound'); - if (($user->getPassword() !== $password)) - return $this->_error('PasswordIsWrong'); + if (!ZendAfi_Auth::getInstance()->authenticateLoginPassword($login, $password)) { + if (Class_Users::findFirstBy(['login' => $login])) + return $this->_error('PasswordIsWrong'); + return $this->_error('UserNotFound'); + } + + $user = Class_Users::getIdentity(); if (!$user->isAbonnementValid()) return $this->_error('SubscriptionExpired'); @@ -121,15 +123,9 @@ class Class_Multimedia_AuthenticateRequest { } - /** @return Class_Multimedia_Device */ - public function getDevice() { - return $this->_device; - } - - /** * @param string $code - * @return Class_Multimedia_Device + * @return Class_Multimedia_AuthenticateRequest */ protected function _error($code) { $this->_error = $code; diff --git a/tests/application/modules/opac/controllers/AbonneControllerMultimediaTest.php b/tests/application/modules/opac/controllers/AbonneControllerMultimediaTest.php index af40997c8044a4388754a6af4fe2a9d6851e2878..4b3d147ada887ea59693ce4c7ef12ca8b5fdda91 100644 --- a/tests/application/modules/opac/controllers/AbonneControllerMultimediaTest.php +++ b/tests/application/modules/opac/controllers/AbonneControllerMultimediaTest.php @@ -58,14 +58,27 @@ trait TAbonneControllerMultimediaFixtureWithUserLaurentInDevsAgiles { abstract class AbonneControllerMultimediaAuthenticateTestCase extends AbstractControllerTestCase { - protected $_json; + protected $_json, $_auth; public function setUp() { parent::setUp(); - ZendAfi_Auth::getInstance()->clearIdentity(); + $this->_auth = Storm_Test_ObjectWrapper::mock() + ->whenCalled('authenticateLoginPassword') + ->answers(false) + ->whenCalled('hasIdentity') + ->answers(false) + ->whenCalled('getIdentity') + ->answers(null); + + ZendAfi_Auth::setInstance($this->_auth); } + public function tearDown() { + ZendAfi_Auth::setInstance(null); + parent::tearDown(); + } + /** * @param $url string * @return stdClass @@ -80,6 +93,13 @@ abstract class AbonneControllerMultimediaAuthenticateTestCase extends AbstractCo * @param $user Class_Users */ protected function _expectUserToLoad($user) { + $this->_auth + ->whenCalled('authenticateLoginPassword') + ->with($user->getLogin(), $user->getPassword()) + ->answers(true) + ->whenCalled('getIdentity') + ->answers($user); + Storm_Test_ObjectWrapper::onLoaderOfModel('Class_Users') ->whenCalled('findFirstBy') ->with(array('login'=> $user->getLogin()))