16,24 → 16,48 |
class GestionUtilisateur { |
|
private $conteneur; |
private $contexte; |
private $bdd; |
|
private $utilisateur = array(); |
|
public function __construct(Conteneur $conteneur = null) { |
$this->conteneur = $conteneur == null ? new Conteneur() : $conteneur; |
$this->conteneur->chargerConfiguration('config_utilisateurs.ini'); |
$this->bdd = $this->conteneur->getBdd(); |
$this->contexte = $this->conteneur->getContexte(); |
$this->chargerUtilisateur(); |
} |
|
private function chargerUtilisateur() { |
$this->demarrerSession(); |
$infos = $this->getUtilisateurIdentifie(); |
$this->utilisateur = ($infos == null) ? $this->getUtilisateurAnonyme() : $infos; |
} |
|
private function demarrerSession() { |
if (session_id() == '') { |
// modifier ce test lors du passage en php 5.4 |
// TODO : modifier ce test lors du passage en php 5.4 |
session_start(); |
} |
} |
|
protected function getUtilisateurAnonyme() { |
return array('connecte' => false, |
public function getUtilisateurIdentifie() { |
$utilisateur = null; |
$delCourriel = $this->contexte->getCookie('del_courriel'); |
$delMdp = $this->contexte->getCookie('del_courriel'); |
if ($delCourriel != null && $delMdp != null) { |
$utilisateur = $this->identifierUtilisateurSansEncryptionMotDePasse($delCourriel, $delMdp); |
} |
if ($utilisateur != null) { |
$utilisateur['session_id'] = session_id(); |
} |
return $utilisateur; |
} |
|
public function getUtilisateurAnonyme() { |
return array( |
'connecte' => false, |
'id_utilisateur' => session_id(), |
'courriel' => '', |
'mot_de_passe' => '', |
44,29 → 68,13 |
); |
} |
|
protected function utilisateurEstIdentifie() { |
$utilisateur = null; |
$utilisateur = $this->utilisateurEstIdentifieCookie(); |
if ($utilisateur != null) { |
$utilisateur['session_id'] = session_id(); |
} |
return $utilisateur; |
} |
|
protected function utilisateurEstIdentifieCookie() { |
$retour = null; |
if (isset($_COOKIE['del_courriel']) && isset($_COOKIE['del_mot_de_passe'])) { |
$retour = $this->identifierUtilisateurSansEncryptionMotDePasse($_COOKIE['del_courriel'], $_COOKIE['del_mot_de_passe']); |
} |
return $retour; |
} |
|
protected function identifierUtilisateur($login, $motDePasse) { |
$requete = 'SELECT du.id_utilisateur, nom, prenom, courriel, mot_de_passe, dui.admin '. |
'FROM del_utilisateur AS du '. |
' LEFT JOIN del_utilisateur_infos AS dui ON (du.id_utilisateur = dui.id_utilisateur) '. |
'WHERE courriel = '.$this->bdd->proteger($login).' '. |
'AND mot_de_passe = MD5('.$this->bdd->proteger($motDePasse).')'; |
'AND mot_de_passe = MD5('.$this->bdd->proteger($motDePasse).') '. |
' -- '.__FILE__.' : '.__LINE__; |
$utilisateur = $this->bdd->recupererTous($requete); |
return $utilisateur; |
} |
76,7 → 84,8 |
'FROM del_utilisateur AS du '. |
' LEFT JOIN del_utilisateur_infos AS dui ON (du.id_utilisateur = dui.id_utilisateur) '. |
'WHERE courriel = '.$this->bdd->proteger($login).' '. |
'AND mot_de_passe = '.$this->bdd->proteger($mot_de_passe); |
'AND mot_de_passe = '.$this->bdd->proteger($mot_de_passe).' '. |
' -- '.__FILE__.' : '.__LINE__; |
$utilisateur = $this->bdd->recuperer($requete); |
return $utilisateur; |
} |
99,4 → 108,15 |
unset($_COOKIE['del_courriel']); |
unset($_COOKIE['del_mot_de_passe']); |
} |
|
public function etreAdmin() { |
//TODO: déplacer ceci dans une classe utilitaire |
$idUtilisateur = $this->bdd->proteger($this->utilisateur['id_utilisateur']); |
$requete = 'SELECT admin '. |
'FROM del_utilisateur_infos '. |
"WHERE id_utilisateur = $idUtilisateur ". |
' -- '.__FILE__.' : '.__LINE__; |
$resultat = $this->bdd->recuperer($requete); |
return ($resultat && $resultat['admin'] == 1); |
} |
} |