Subversion Repositories Applications.annuaire

Rev

Rev 120 | Rev 143 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
33 aurelien 1
<?php
2
/**
3
* PHP Version 5
4
*
5
* @category  PHP
6
* @package   annuaire
7
* @author    aurelien <aurelien@tela-botanica.org>
8
* @copyright 2010 Tela-Botanica
9
* @license   http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
10
* @version   SVN: <svn_id>
11
* @link      /doc/annuaire/
12
*/
13
 
14
/**
15
 * Controleur chargé de la propagation et le rassemblement d'informations extérieures
16
 * lors dce la consultation et modification des fiches utilisateurs
17
 */
120 aurelien 18
Class ApplicationExterneControleur extends AppControleur {
33 aurelien 19
 
56 aurelien 20
	private $applications_resume = null;
21
	private $applications_gestion = null;
22
	private $mode_reponse = 'json';
33 aurelien 23
 
24
	public function ApplicationExterneControleur() {
25
 
26
		$this->__construct();
27
 
28
		// on charge les variables de classes à partir du fichier de configuration
63 aurelien 29
		if(Config::get('url_services_applications_inscription') != null) {
30
 
31
			$application_str = Config::get('url_services_applications_inscription');
32
			$this->applications_inscription = explode('##',$application_str);
33
		} else {
34
			$this->applications_inscription = array();
35
		}
36
 
37
		// on charge les variables de classes à partir du fichier de configuration
56 aurelien 38
		if(Config::get('url_services_applications_resume') != null) {
33 aurelien 39
 
56 aurelien 40
			$application_str = Config::get('url_services_applications_resume');
41
			$this->applications_resume = explode('##',$application_str);
33 aurelien 42
		} else {
56 aurelien 43
			$this->applications_resume = array();
33 aurelien 44
		}
45
 
56 aurelien 46
		// on charge les variables de classes à partir du fichier de configuration
47
		if(Config::get('url_services_applications_gestion') != null) {
48
 
49
			$application_str = Config::get('url_services_applications_gestion');
50
			$this->applications_gestion = explode('##',$application_str);
33 aurelien 51
		} else {
56 aurelien 52
			$this->applications_gestion = array();
33 aurelien 53
		}
54
	}
55
 
56
	/**
63 aurelien 57
	 * parcourt la liste des applications et appelle une adresse spécifique pour l'inscription
33 aurelien 58
	 * et l'inclut, le cas échéant.
59
	 * @param l'identifiant de l'utilisateur
60
	 * @param le mail de l'utilisateur
61
	 */
84 aurelien 62
	public function ajouterInscription($id_utilisateur, $params) {
33 aurelien 63
 
63 aurelien 64
		if(count($this->applications_inscription) > 0) {
65
			foreach($this->applications_inscription as $application) {
66
 
84 aurelien 67
				$inscription = @file_get_contents($application.'Inscription/'.$this->fabriquerRequete($id_utilisateur, $params));
68
				$inscription = json_decode($inscription);
63 aurelien 69
 
84 aurelien 70
				if($inscription && $inscription == "OK") {
71
 
63 aurelien 72
				} else {
73
					echo 'Erreur d\'inscription à l\'application '.$application;
74
				}
75
			}
76
		}
77
 
33 aurelien 78
		return true;
79
	}
80
 
81
 
82
	/**
63 aurelien 83
	 * parcourt la liste des applications et appelle une adresse spécifique pour la modification
33 aurelien 84
	 * et l'inclut, le cas échéant.
85
	 * @param l'identifiant de l'utilisateur
86
	 * @param le mail de l'utilisateur
87
	 */
63 aurelien 88
	public function modifierInscription($id_utilisateur,$params) {
89
 
90
		if(count($this->applications_inscription) > 0) {
91
			foreach($this->applications_inscription as $application) {
92
 
84 aurelien 93
				$modification = @file_get_contents($application.'Modification/'.$this->fabriquerRequete($id_utilisateur, $params));
94
				$modification = json_decode($modification);
95
				if($modification && $modification == "OK") {
63 aurelien 96
 
97
				} else {
84 aurelien 98
					echo 'Erreur de modification  l\'application '.$application.'<br />'.$modification;
63 aurelien 99
				}
100
			}
101
		}
102
 
56 aurelien 103
		return true;
33 aurelien 104
	}
105
 
106
	/**
63 aurelien 107
	 * parcourt la liste des applications et appelle une adresse spécifique pour la suppression
33 aurelien 108
	 * et l'inclut, le cas échéant.
109
	 * @param l'identifiant de l'utilisateur
110
	 * @param le mail de l'utilisateur
111
	 */
84 aurelien 112
	public function supprimerInscription($id_utilisateur, $params) {
63 aurelien 113
 
114
		if(count($this->applications_inscription) > 0) {
115
			foreach($this->applications_inscription as $application) {
116
 
84 aurelien 117
				$suppression = @file_get_contents($application.'Suppression/'.$this->fabriquerRequete($id_utilisateur, $params));
118
				$suppression = json_decode($suppression);
63 aurelien 119
 
84 aurelien 120
				if($suppression && $suppression == "OK") {
63 aurelien 121
 
122
				} else {
84 aurelien 123
					echo 'Erreur de desinscription à l\'application '.$application;
63 aurelien 124
				}
125
			}
126
		}
127
 
56 aurelien 128
		return true;
129
	}
33 aurelien 130
 
56 aurelien 131
	/**
132
	 * Parcourt le repertoire racine des applications et appelle un web service contenant la méthode
133
	 * Resume qui renvoie les informations associées à l'utilisateur qui seront affichées dans la fiche
134
	 * de profil
135
	 * @param l'identifiant de l'utilisateur
136
	 * @param le mail de l'utilisateur
137
	 * @return array un tableau associatif dont les clés sont les noms des applis et les valeurs sont le html qui sera
138
	 * inclus dans la fiche profil
139
	 */
140
	public function obtenirResume($id_utilisateur, $mail) {
33 aurelien 141
 
56 aurelien 142
		$resumes = array();
33 aurelien 143
 
56 aurelien 144
		if(count($this->applications_resume) > 0) {
145
			foreach($this->applications_resume as $application) {
146
 
147
				$resume = @file_get_contents($application.'Resume'.DS.$id_utilisateur.DS.$mail);
148
 
149
 
150
				if($resume) {
151
					$resume = json_decode($resume, true);
152
					$resumes[] = $resume;
153
				} else {
137 aurelien 154
					$resume = array('elements' => array(), 'titre' => '');
33 aurelien 155
				}
156
			}
157
		}
158
 
56 aurelien 159
		return $resumes;
33 aurelien 160
	}
161
 
56 aurelien 162
	 /** Parcourt le repertoire racine des applications et cherche un fichier spécifique contenant la méthode
33 aurelien 163
	 * obtenirResume qui renvoie les informations associées à l'utilisateur qui seront affichées dans la fiche
164
	 * de profil
165
	 * @param l'identifiant de l'utilisateur
166
	 * @param le mail de l'utilisateur
167
	 * @return array un tableau associatif dont les clés sont les noms des applis et les valeurs sont le html qui sera
168
	 * inclus dans la fiche profil
169
	 */
56 aurelien 170
	public function gererInscription($id_utilisateur, $mail) {
33 aurelien 171
 
56 aurelien 172
		$gestions = array();
33 aurelien 173
 
56 aurelien 174
		if(count($this->applications_gestion) > 0) {
175
			foreach($this->applications_gestion as $application) {
33 aurelien 176
 
56 aurelien 177
				$gestion = file_get_contents($application.'Gestion'.DS.$id_utilisateur.DS.$mail);
33 aurelien 178
 
56 aurelien 179
				if($gestion) {
180
					$gestion = json_decode($gestion, true);
181
					$gestions[] = $gestion;
182
				} else {
137 aurelien 183
					$gestion = array('elements' => array(), 'titre' => '');
33 aurelien 184
				}
185
			}
186
		}
187
 
56 aurelien 188
		return $gestions;
33 aurelien 189
	}
63 aurelien 190
 
191
	private function fabriquerRequete($id, $params) {
192
 
193
		$requete = '?';
194
 
195
		foreach($params as $cle => $param) {
196
			$requete .= '&'.$cle.'='.$param;
197
		}
198
 
199
		return $requete;
200
	}
33 aurelien 201
}
202
 
203
 
204
?>