Subversion Repositories Applications.annuaire

Rev

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

Rev Author Line No. Line
45 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
 
120 aurelien 14
Class IdentificationControleur extends AppControleur {
45 aurelien 15
 
16
	private $nom_cookie_persistant = '';
17
	private $duree_identification = '0';
85 aurelien 18
	private $fonction_cryptage_mdp_cookie = 'md5';
19
	private $objet_identification = null;
45 aurelien 20
 
21
	public function afficherFormulaireIdentification($id_annuaire, $donnees = array()) {
22
		$this->chargerModele('AnnuaireModele');
23
		$annuaire = $this->AnnuaireModele->chargerAnnuaire($id_annuaire);
24
 
395 jpm 25
		if (!isset($donnees['informations'])) {
85 aurelien 26
			$donnees['informations'] = array();
27
		}
28
 
29
		$donnees['id_annuaire'] = $id_annuaire;
30
 
31
		return $this->getVue(Config::get('dossier_squelettes_formulaires').'identification',$donnees);
45 aurelien 32
	}
395 jpm 33
 
85 aurelien 34
	public function loggerUtilisateur($utilisateur, $pass) {
35
		$this->objet_identification = Config::get('objet_identification');
395 jpm 36
 
143 aurelien 37
		$this->creerCookie($utilisateur, $pass);
395 jpm 38
 
39
		// Loguer l'utilisateur
85 aurelien 40
		$this->objet_identification->username = $utilisateur;
41
		$this->objet_identification->password = $pass;
42
		$this->objet_identification->login();
43
 
44
		return true;
45
	}
395 jpm 46
 
106 aurelien 47
	public function deLoggerUtilisateur() {
48
		$this->objet_identification = Config::get('objet_identification');
49
		$this->objet_identification->logout();
50
		return true;
51
	}
395 jpm 52
 
143 aurelien 53
	public function setUtilisateur($nom_utilisateur) {
54
		$this->objet_identification = Config::get('objet_identification');
55
		$this->objet_identification->setAuth($nom_utilisateur);
56
		$pass = $this->objet_identification->password;
401 jpm 57
 
143 aurelien 58
		$this->creerCookie($nom_utilisateur, $pass, true);
59
	}
395 jpm 60
 
143 aurelien 61
	public function creerCookie($utilisateur, $pass, $pass_deja_crypte = false) {
62
		$this->objet_identification = Config::get('objet_identification');
395 jpm 63
 
143 aurelien 64
		// Expiration si l'utilisateur ne referme pas son navigateur
65
		$this->objet_identification->setExpire(0);
359 aurelien 66
		$this->objet_identification->setIdle(0);
395 jpm 67
 
143 aurelien 68
		// Création d'un cookie pour rendre permanente l'identification de Papyrus
401 jpm 69
		$pass_crypt = (!$pass_deja_crypte) ? md5($pass) : $pass;
143 aurelien 70
		$cookie_val = $pass_crypt.$utilisateur;
395 jpm 71
		setcookie(session_name().'-memo', $cookie_val, 0, '/');
96 aurelien 72
	}
395 jpm 73
 
170 aurelien 74
	public function obtenirLoginUtilisateurParCookie() {
395 jpm 75
		$nom_session = Config::get('nom_session');
170 aurelien 76
 
395 jpm 77
		if (isset($_COOKIE[$nom_session])) {
170 aurelien 78
			$cookie_val = $_COOKIE[$nom_session];
79
			$login_utilisateur = substr($cookie_val, '32', strlen($cookie_val));
80
			return $login_utilisateur;
81
		} else {
82
			return false;
83
		}
84
	}
45 aurelien 85
}
294 aurelien 86
?>