Subversion Repositories Applications.annuaire

Rev

Rev 63 | Rev 137 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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