Subversion Repositories eFlore/Applications.coel

Rev

Rev 1907 | Rev 1916 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1907 Rev 1908
Line 26... Line 26...
26
 * @license GPL v3 <http://www.gnu.org/licenses/gpl.txt>
26
 * @license GPL v3 <http://www.gnu.org/licenses/gpl.txt>
27
 * @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
27
 * @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
28
 * @version $Id$
28
 * @version $Id$
29
 * @copyright 2009
29
 * @copyright 2009
30
 */
30
 */
31
class CoelUtilisateur extends Coel { 
31
class CoelUtilisateur extends Coel {
Line 32... Line 32...
32
 
32
 
Line 33... Line 33...
33
	protected $licence_acceptee = false;
33
	protected $licence_acceptee = false;
34
 
34
 
35
	/**
35
	/**
36
	 * Point d'entrée GET
36
	 * Point d'entrée GET sans paramètres
37
	 */
37
	 */
38
	public function getRessource() {
38
	public function getRessource() {
39
		// par défaut, mode anonyme
39
		// par défaut, mode anonyme
40
		$infos = $this->getUtilisateurAnonyme();
40
		$infos = $this->getUtilisateurAnonyme();
41
		// recherche d'un utilisateur identifié en fonction du jeton SSO
41
		// recherche d'un utilisateur identifié en fonction du jeton SSO
42
		$infosIdentifie = $this->getUtilisateurSSO();
-
 
43
		if ($infosIdentifie != null) {
42
		$infosIdentifie = $this->getUtilisateurSSO();
44
			//echo "Infos SSO : "; var_dump($infosIdentifie);
-
 
45
			$infos = $infosIdentifie;
-
 
46
			// @TODO si la licence n'a pas été acceptée, au revoir les enfants
-
 
47
			// on envoie tout de même les infos à l'interface mais on déconnecte les services
43
		if ($infosIdentifie != null) {
48
			//$this->deconnecterUtilisateur();
44
			$infos = $infosIdentifie;
49
		}
45
		}
50
		// et vlan, passe-moi l'éponge
46
		// et vlan, passe-moi l'éponge
Line 51... Line 47...
51
		$this->envoyer($infos);
47
		$this->envoyer($infos);
-
 
48
	}
-
 
49
 
-
 
50
	/**
-
 
51
	 * Point d'entrée GET avec paramètres
-
 
52
	 */
-
 
53
	public function getElement($ressources) {
-
 
54
		switch($ressources[0]) {
-
 
55
			case "setLicence" :
-
 
56
				$this->setLicence($ressources[1]);
-
 
57
				break;
-
 
58
			default:
-
 
59
				echo "action [" . $ressources[0] . "] inconnue";
-
 
60
		}
52
	}
61
	}
53
 
62
 
54
	/**
63
	/**
55
	 * Renvoie un profil utilisateur CoeL anonyme
64
	 * Renvoie un profil utilisateur CoeL anonyme
56
	 * (licence vide, id de session, non connecté)
65
	 * (licence vide, id de session, non connecté)
Line 105... Line 114...
105
							// Nécessite de faire une mise à jour
114
							// Nécessite de faire une mise à jour
106
							$this->debug[] = "Mise à jour de l'utilisateur {$infosAnnuaire['id']}";
115
							$this->debug[] = "Mise à jour de l'utilisateur {$infosAnnuaire['id']}";
107
							$this->mettreAJourUtilisateur($login, $mot_de_passe_sha1, $infosAnnuaire);
116
							$this->mettreAJourUtilisateur($login, $mot_de_passe_sha1, $infosAnnuaire);
108
							$utilisateur_existant['licence'] = (int) $this->recupererLicenceUtilisateur($infosAnnuaire['id']);
117
							$utilisateur_existant['licence'] = (int) $this->recupererLicenceUtilisateur($infosAnnuaire['id']);
109
						} else {
118
						} else {
110
							echo "Insertion";
-
 
111
							// Nécessite d'ajouter le nouvel utilisateur
119
							// Nécessite d'ajouter le nouvel utilisateur
112
							$this->debug[] = "Ajout d'une nouvel utilisateur";
120
							$this->debug[] = "Ajout d'une nouvel utilisateur";
113
							$this->ajouterUtilisateurACoel($infosAnnuaire, $mot_de_passe_sha1);
121
							$this->ajouterUtilisateurACoel($infosAnnuaire, $mot_de_passe_sha1);
114
							// rechargement après l'avoir ajouté (un peu nul)
122
							// rechargement après l'avoir ajouté (un peu nul)
115
							$utilisateur_existant = $this->chargerUtilisateur($courriel);
123
							$utilisateur_existant = $this->chargerUtilisateur($courriel);
116
						}
124
						}
117
							
-
 
118
						$this->setUtilisateur($utilisateur_existant);
-
 
119
					}
125
					}
Line 120... Line 126...
120
 
126
 
121
					// stockage de l'utilisateur en session
127
					// stockage de l'utilisateur en session
Line 243... Line 249...
243
			$messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage(), $requete);
249
			$messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage(), $requete);
244
		}
250
		}
245
	}
251
	}
Line 246... Line 252...
246
 
252
 
-
 
253
	/**
-
 
254
	 * Met à jour l'utilisateur d'id $idUtilisateur, et passe son acceptation de
-
 
255
	 * la licence à "1"
-
 
256
	 */
-
 
257
	protected function setLicence($idUtilisateur = null) {
-
 
258
		if ($idUtilisateur == null) {
-
 
259
			$messages[] = "Id utilisateur null";
-
 
260
			$this->envoyer();
-
 
261
			exit;
-
 
262
		}
-
 
263
		// Mise à jour de l'utilisateur
-
 
264
		try {
-
 
265
			$requete = 	'UPDATE coel_personne '.
-
 
266
				"SET cp_mark_licence = 1 ".
-
 
267
				"WHERE cp_ce_annuaire = '$idUtilisateur' ";
-
 
268
			// Ajout des données
-
 
269
			$resultat = $this->bdd->exec($requete);
-
 
270
			if ($resultat === false) {
-
 
271
				$this->messages[] = "L'utilisateur n'a pas été mis à jour car la requête a échouée.";
-
 
272
			} else {
-
 
273
				// Confirmation attendue par l'interface
-
 
274
				$this->envoyer(array("1"));
-
 
275
				exit;
-
 
276
			}
-
 
277
		} catch (PDOException $e) {
-
 
278
			$messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage(), $requete);
-
 
279
			$this->envoyer();
-
 
280
		}
-
 
281
	}
-
 
282
 
247
	/**
283
	/**
248
	 * Ajoute une copie de l'utilisateur dans la table CoeL Personnes
284
	 * Ajoute une copie de l'utilisateur dans la table CoeL Personnes
249
	 */
285
	 */
250
	protected function ajouterUtilisateurACoel($infos, $mot_de_passe_sha1) {
286
	protected function ajouterUtilisateurACoel($infos, $mot_de_passe_sha1) {
251
		try {
287
		try {