From 76142761d1cb0912a9b845ea6bf8adc0a987a847 Mon Sep 17 00:00:00 2001
From: pbarroca <pbarroca@afi-sa.fr>
Date: Wed, 28 May 2014 15:32:39 +0200
Subject: [PATCH] rel #13931 : add start and end date in multimedia
 authentication

---
 .../opac/controllers/AbonneController.php     | 18 +++++++--------
 .../Class/Multimedia/AuthenticateRequest.php  |  2 +-
 .../AbonneControllerMultimediaTest.php        | 22 ++++++++++++++++++-
 3 files changed, 31 insertions(+), 11 deletions(-)

diff --git a/application/modules/opac/controllers/AbonneController.php b/application/modules/opac/controllers/AbonneController.php
index bb8b998f2df..aaf71ff92b8 100644
--- a/application/modules/opac/controllers/AbonneController.php
+++ b/application/modules/opac/controllers/AbonneController.php
@@ -596,23 +596,23 @@ class AbonneController extends ZendAfi_Controller_Action {
 		$response->auth = 0;
 		$response->until = '';
 
-		$request = Class_Multimedia_AuthenticateRequest::newWithRequest($this->_request);
-
+		$request = Class_Multimedia_AuthenticateRequest::newWithRequest($this->_request);		
 		if ($user = $request->getUser()) {
-			foreach (array('id', 'login', 'password', 'nom', 'prenom') as $attribute)
+			foreach (['id', 'login', 'password', 'nom', 
+								'prenom', 'date_debut', 'date_fin'] as $attribute)
 				$response->$attribute = $user->$attribute;
-
 			$response->groupes = $user->getUserGroupsLabels();
 			$response->date_naissance = $user->getDateNaissanceIso8601();
 		}
 
-		if ($request->isValid()) {
-			$response->auth = 1;
-			$response->until = date('c', $request->getCurrentHoldEnd());
-		} else {
+		if (!$request->isValid()) {
 			$response->error = $request->getError();
-		} 
+			$this->_response->setBody(json_encode($response));
+			return;
+		}
 
+		$response->auth = 1;
+		$response->until = date('c', $request->getCurrentHoldEnd());
 
 		$this->_response->setBody(json_encode($response));
 	}
diff --git a/library/Class/Multimedia/AuthenticateRequest.php b/library/Class/Multimedia/AuthenticateRequest.php
index 12df83c335b..87b4d76e8eb 100644
--- a/library/Class/Multimedia/AuthenticateRequest.php
+++ b/library/Class/Multimedia/AuthenticateRequest.php
@@ -59,7 +59,7 @@ class Class_Multimedia_AuthenticateRequest {
 																					$password, 
 																					[$auth->newAuthSIGB(), $auth->newAuthDb()])) {
 			if (Class_Users::findFirstBy(['login' => $login]))
-					return $this->_error('PasswordIsWrong');
+				return $this->_error('PasswordIsWrong');
 			return 	$this->_error('UserNotFound');
 		}
 
diff --git a/tests/application/modules/opac/controllers/AbonneControllerMultimediaTest.php b/tests/application/modules/opac/controllers/AbonneControllerMultimediaTest.php
index 2ff7419218d..3af31e31b73 100644
--- a/tests/application/modules/opac/controllers/AbonneControllerMultimediaTest.php
+++ b/tests/application/modules/opac/controllers/AbonneControllerMultimediaTest.php
@@ -206,6 +206,12 @@ class AbonneControllerMultimediaAuthenticateMireilleTest extends AbonneControlle
 	public function shouldReturnSubscriptionExpired() {
 		$this->assertEquals('SubscriptionExpired', $this->_json->error);	
 	}
+
+
+	/** @test */
+	public function dateFinShouldNotBePresent() {
+		$this->assertFalse(isset($this->_json->date_fin));
+	}
 }
 
 
@@ -418,7 +424,20 @@ class AbonneControllerMultimediaAuthenticateBaptisteTest extends AbonneControlle
 		
 	/** @test */
 	public function groupsShouldBeMineurAbonneAndOldSchool() {
-		$this->assertEquals(array('mineur','abonne_sigb', 'Devs Oldschool'), $this->_json->groupes);	
+		$this->assertEquals(['mineur','abonne_sigb', 'Devs Oldschool'], 
+												$this->_json->groupes);	
+	}
+
+
+	/** @test */
+	public function dateFinShouldBe3000_01_01() {
+		$this->assertEquals('3000-01-01', $this->_json->date_fin);
+	}
+
+
+	/** @test */
+	public function dateDebutShouldBe1978_05_23() {
+		$this->assertEquals('1978-05-23', $this->_json->date_debut);
 	}
 }
 
@@ -1252,6 +1271,7 @@ class AbonneControllerMultimediaUsersFixtures {
 			->setPassword("afi")
 			->beAbonneSIGB()
 			->setNaissance('2005-02-17')
+			->setDateDebut('1978-05-23')
 			->setDateFin('3000-01-01');
 	}
 
-- 
GitLab