Subversion Repositories eFlore/Applications.del

Compare Revisions

Ignore whitespace Rev 1476 → Rev 1477

/trunk/services/modules/0.1/utilisateurs/IdentificationAnonyme.php
15,19 → 15,8
* @see http://www.tela-botanica.org/wikini/eflore/wakka.php?wiki=ApiIdentiplante01Observations
*/
 
class IdentificationAnonyme {
class IdentificationAnonyme extends gestionUtilisateur {
private $conteneur;
private $gestionBdd;
private $bdd;
public function __construct(Conteneur $conteneur = null) {
$this->conteneur = $conteneur == null ? new Conteneur() : $conteneur;
$this->conteneur->chargerConfiguration('config_utilisateurs.ini');
$this->gestionBdd = $conteneur->getGestionBdd();
$this->bdd = $this->gestionBdd->getBdd();
}
/**
* Méthode principale de la classe.
* Lance la récupération des images dans la base et les place dans un objet ResultatService
35,70 → 24,19
* @param array $ressources les ressources situées après l'url de base (ex : http://url/ressource1/ressource2)
* @param array $parametres les paramètres situés après le ? dans l'url
* */
public function consulter($ressources, $parametres) {
session_start();
// Lancement du service
$temps_expiration = 60*60*24*100; // 100 jours
session_set_cookie_params($temps_expiration);
public function consulter($ressources, $parametres) {
$utilisateur = $this->getUtilisateurAnonyme();
$utilisateurParCookie = $this->utilisateurEstIdentifie();
$utilisateurParCookie = $this->utilisateurEstIdentifie();
if ($utilisateurParCookie != null) {
$utilisateurParCookie['connecte'] = true;
$utilisateur = $utilisateurParCookie;
}
// Mettre en forme le résultat et l'envoyer pour affichage
$resultat = new ResultatService();
$resultat->corps = $utilisateur;
return $resultat;
}
private function getUtilisateurAnonyme() {
return array('connecte' => false,
'id_utilisateur' => session_id(),
'courriel' => '',
'mot_de_passe' => '',
'nom' => '',
'prenom' => '',
'session_id' => session_id()
);
}
private function utilisateurEstIdentifie() {
$utilisateur = null;
if (($utilisateur = $this->utilisateurEstIdentifieSession()) == null) {
$utilisateur = $this->utilisateurEstIdentifieCookie();
if($utilisateur != null) {
$utilisateur['session_id'] = session_id();
}
}
return $utilisateur;
}
function utilisateurEstIdentifieSession() {
$utilisateur = null;
if (isset($_SESSION["del_utilisateur"]) && $_SESSION["del_utilisateur"] != "") {
$utilisateur = $_SESSION["del_utilisateur"];
}
return $utilisateur;
}
function utilisateurEstIdentifieCookie() {
$retour = null;
if(isset($_COOKIE["del_courriel"])) {
$retour = $this->identifierUtilisateurSansEncryptionMotDePasse($_COOKIE["del_courriel"], $_COOKIE["del_password"]);
}
return $retour;
}
function identifierUtilisateurSansEncryptionMotDePasse($login, $mot_de_passe, $remember = 1) {
$requete = 'SELECT id_utilisateur, nom, prenom, courriel, mot_de_passe FROM '.$this->gestionBdd->formaterTable('del_utilisateur', 'du').
'WHERE courriel = '.$this->bdd->proteger($login).' '.
'AND mot_de_passe = '.$this->bdd->proteger($mot_de_passe);
$utilisateur = $this->bdd->recuperer($requete);
return $utilisateur;
}
}
?>