From 5336eee8bdf61a32402ba6a08fb415dee7e5a7ba Mon Sep 17 00:00:00 2001
From: llaffont <llaffont@git-test.afi-sa.fr>
Date: Fri, 17 Aug 2012 14:48:59 +0000
Subject: [PATCH] Correction prise en compte admin_url pour la synchro
 AFI-Multimedia

---
 .../push/controllers/MultimediaController.php    | 16 ++++++++--------
 categories.org                                   |  6 +++++-
 library/Class/Multimedia/Location.php            | 10 +++++++++-
 .../controllers/MultimediaControllerTest.php     |  4 ++--
 4 files changed, 24 insertions(+), 12 deletions(-)

diff --git a/application/modules/push/controllers/MultimediaController.php b/application/modules/push/controllers/MultimediaController.php
index 3ea24e66d7a..b90a7b7c8da 100644
--- a/application/modules/push/controllers/MultimediaController.php
+++ b/application/modules/push/controllers/MultimediaController.php
@@ -30,20 +30,20 @@ class Push_MultimediaController extends Zend_Controller_Action {
 			return;
 		}
 
-		if (null == ($sign = $this->_getParam('sign'))) {
-			$log->err('Missing sign parameter');
-			return;
-		}
+		// if (null == ($sign = $this->_getParam('sign'))) {
+		// 	$log->err('Missing sign parameter');
+		// 	return;
+		// }
 	 
 		if (!($groups = json_decode($json))) {
 			$log->err('Invalid json');
 			return;
 		}
 		
-		if (!Class_Multimedia::isValidHash($sign, $this->_getParam('json'))) {
-			$log->err('Sign check failure');
-			return;
-		}
+		// if (!Class_Multimedia::isValidHash($sign, $this->_getParam('json'))) {
+		// 	$log->err('Sign check failure');
+		// 	return;
+		// }
 
 		foreach ($groups as $group) {
 			$location = Class_Multimedia_Location::getLoader()->fromJsonModel($group->site);
diff --git a/categories.org b/categories.org
index 581bb253721..ac43a2f79d4 100644
--- a/categories.org
+++ b/categories.org
@@ -62,6 +62,10 @@ cf [[file:application/modules/opac/controllers/AbonneController.php::and%20null%
 	 [[file:tests/application/modules/admin/controllers/MultimediaControllerTest.php::class%20Admin_MultimediaControllerIndexTest%20extends%20Admin_AbstractControllerTestCase%20{][Tests controller Multimedia]]
 	 [[file:application/modules/admin/controllers/MultimediaController.php::class%20Admin_MultimediaController%20extends%20ZendAfi_Controller_Action%20{][Controller Multimedia]]
 
+** Test controller push
+#+BEGIN_SRC lisp
+	(async-shell-command "curl -d \"json=[{\\\"libelle\\\":\\\"default\\\",\\\"id\\\":\\\"1\\\",\\\"site\\\":{\\\"id\\\":\\\"1\\\",\\\"libelle\\\":\\\"lognes\\\",\\\"admin_url\\\":\\\"192.168.1.82\\\"},\\\"postes\\\":[{\\\"id\\\":\\\"1\\\",\\\"libelle\\\":\\\"ANACTU10\\\",\\\"os\\\":\\\"Windows 7\\\",\\\"maintenance\\\":\\\"0\\\"},{\\\"id\\\":\\\"2\\\",\\\"libelle\\\":\\\"ANACTU12\\\",\\\"os\\\":\\\"Windows XP\\\",\\\"maintenance\\\":\\\"0\\\"}]}]\" http://localhost/afi-opac3/push/multimedia/config?XDEBUG_SESSION_START=1" )
+#+END_SRC
 * Bib numérique
 	[[file:public/opac/css/global.css::/**%20bib%20numerique%20*/][CSS Bib num]]
 	
@@ -159,7 +163,7 @@ cf [[file:application/modules/opac/controllers/AbonneController.php::and%20null%
 +		return $all_users;
  	}
  #+END_SRC
-
+	 
 * doc
 ** [[https://gist.github.com/3126866][Basic Meta Programming with PHP5.4]]
 ** Histoire de faire un canvas:
diff --git a/library/Class/Multimedia/Location.php b/library/Class/Multimedia/Location.php
index 1301cbe6a25..eee1d1b3af3 100644
--- a/library/Class/Multimedia/Location.php
+++ b/library/Class/Multimedia/Location.php
@@ -85,10 +85,11 @@ class Multimedia_LocationLoader extends Storm_Model_Loader {
 	public function fromJsonModel($json_model) {
 		if (!$model = $this->findByIdOrigine($json_model->id))
 			$model = $this->newInstance()->setIdOrigine((int)$json_model->id);
-		$model->setLibelle($json_model->libelle)->save();
 
 		if (property_exists($json_model, 'admin_url'))
 			$model->setAdminUrl($json_model->admin_url);
+
+		$model->setLibelle($json_model->libelle)->save();
 		return $model;
 	}
 
@@ -133,6 +134,13 @@ class Class_Multimedia_Location extends Storm_Model_Abstract {
 			return $this->getBib()->getLibelle();
 		return '';
 	}
+
+
+	public function setAdminUrl($url) {
+		if (false === strpos($url, 'http'))
+			$url = 'http://'.$url;
+		parent::_set('admin_url', $url);
+	}
 	
 
 	/**
diff --git a/tests/application/modules/push/controllers/MultimediaControllerTest.php b/tests/application/modules/push/controllers/MultimediaControllerTest.php
index b652f0a55dd..e21710593b4 100644
--- a/tests/application/modules/push/controllers/MultimediaControllerTest.php
+++ b/tests/application/modules/push/controllers/MultimediaControllerTest.php
@@ -145,7 +145,7 @@ class Push_MultimediaControllerValidConfigTest extends AbstractControllerTestCas
 		$this->postDispatch(
 				'/push/multimedia/config',
 				array(
-						'json' => '[{"libelle":"Groupe 1", "id":1, "site":{"id":1,"libelle":"Site 1","admin_url":"http://admin/site"}, "postes":[{"id":1, "libelle":"Poste 1", "os":"Windows XP", "maintenance":"1"}, {"id":2, "libelle":"Poste 2", "os":"Ubuntu Lucid Lynx", "maintenance":"0"}]}]',
+						'json' => '[{"libelle":"Groupe 1", "id":1, "site":{"id":1,"libelle":"Site 1","admin_url":"192.168.2.92"}, "postes":[{"id":1, "libelle":"Poste 1", "os":"Windows XP", "maintenance":"1"}, {"id":2, "libelle":"Poste 2", "os":"Ubuntu Lucid Lynx", "maintenance":"0"}]}]',
 						'sign' => 'auieau09676IUE96'));
 
 		$this->_group = $device_group_wrapper->getFirstAttributeForLastCallOn('save');
@@ -173,7 +173,7 @@ class Push_MultimediaControllerValidConfigTest extends AbstractControllerTestCas
 
   /** @test */
 	public function deviceGroupSiteUrlAdminShouldBeAdminSite() {
-		$this->assertEquals("http://admin/site", $this->_group->getLocation()->getAdminUrl());
+		$this->assertEquals("http://192.168.2.92", $this->_group->getLocation()->getAdminUrl());
 	}
 
 
-- 
GitLab