Subversion Repositories Applications.annuaire

Rev

Rev 401 | 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;
429 aurelien 20
 
21
	/*public function IdentificationControleur() {
45 aurelien 22
 
429 aurelien 23
		Controleur::__construct();
24
		$this->cookie_persistant_nom = session_name().'-memo';
25
		$this->cookie_persistant_nom = 'pap-admin_papyrus_-memo';
26
		$this->duree_identification = time()+Config::get('duree_session_identification');
27
		$this->fonction_cryptage_mdp_cookie = Config::get('fonction_cryptage_mdp_cookie');
28
 
29
	}*/
30
 
45 aurelien 31
	public function afficherFormulaireIdentification($id_annuaire, $donnees = array()) {
429 aurelien 32
 
45 aurelien 33
		$this->chargerModele('AnnuaireModele');
34
		$annuaire = $this->AnnuaireModele->chargerAnnuaire($id_annuaire);
35
 
429 aurelien 36
		if(!isset($donnees['informations'])) {
85 aurelien 37
			$donnees['informations'] = array();
38
		}
39
 
40
		$donnees['id_annuaire'] = $id_annuaire;
41
 
42
		return $this->getVue(Config::get('dossier_squelettes_formulaires').'identification',$donnees);
45 aurelien 43
	}
395 jpm 44
 
85 aurelien 45
	public function loggerUtilisateur($utilisateur, $pass) {
429 aurelien 46
 
85 aurelien 47
		$this->objet_identification = Config::get('objet_identification');
429 aurelien 48
 
49
		// on cree le cookie
143 aurelien 50
		$this->creerCookie($utilisateur, $pass);
429 aurelien 51
 
52
		// On loggue l'utilisateur
85 aurelien 53
		$this->objet_identification->username = $utilisateur;
54
		$this->objet_identification->password = $pass;
55
		$this->objet_identification->login();
56
 
57
		return true;
58
	}
429 aurelien 59
 
106 aurelien 60
	public function deLoggerUtilisateur() {
429 aurelien 61
 
106 aurelien 62
		$this->objet_identification = Config::get('objet_identification');
63
		$this->objet_identification->logout();
429 aurelien 64
 
106 aurelien 65
		return true;
66
	}
429 aurelien 67
 
143 aurelien 68
	public function setUtilisateur($nom_utilisateur) {
69
		$this->objet_identification = Config::get('objet_identification');
70
		$this->objet_identification->setAuth($nom_utilisateur);
71
		$pass = $this->objet_identification->password;
72
		$this->creerCookie($nom_utilisateur, $pass, true);
73
	}
429 aurelien 74
 
143 aurelien 75
	public function creerCookie($utilisateur, $pass, $pass_deja_crypte = false) {
429 aurelien 76
 
143 aurelien 77
		$this->objet_identification = Config::get('objet_identification');
429 aurelien 78
 
143 aurelien 79
		// Expiration si l'utilisateur ne referme pas son navigateur
80
		$this->objet_identification->setExpire(0);
81
		// Création d'un cookie pour rendre permanente l'identification de Papyrus
429 aurelien 82
		if(!$pass_deja_crypte) {
83
			$pass_crypt = md5($pass);
84
		} else {
85
			$pass_crypt = $pass;
86
		}
143 aurelien 87
		$cookie_val = $pass_crypt.$utilisateur;
429 aurelien 88
		setcookie(session_name().'-memo', $cookie_val, 0, '/');
96 aurelien 89
	}
429 aurelien 90
 
170 aurelien 91
	public function obtenirLoginUtilisateurParCookie() {
92
 
429 aurelien 93
		$nom_utilisateur = Config::get('nom_utilisateur');
94
 
95
		if(isset($_COOKIE[$nom_utilisateur])) {
96
			$login_utilisateur =  $_COOKIE[$nom_utilisateur];
170 aurelien 97
			return $login_utilisateur;
98
		} else {
99
			return false;
100
		}
429 aurelien 101
 
170 aurelien 102
	}
45 aurelien 103
}
294 aurelien 104
?>