Subversion Repositories Applications.annuaire

Rev

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

<?php
/**
* PHP Version 5
*
* @category  PHP
* @package   annuaire
* @author    aurelien <aurelien@tela-botanica.org>
* @copyright 2010 Tela-Botanica
* @license   http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
* @version   SVN: <svn_id>
* @link      /doc/annuaire/
*/

Class IdentificationControleur extends AppControleur {

        private $nom_cookie_persistant = '';
        private $duree_identification = '0';
        private $fonction_cryptage_mdp_cookie = 'md5';
        private $objet_identification = null;

        public function afficherFormulaireIdentification($id_annuaire, $donnees = array()) {
                $this->chargerModele('AnnuaireModele');
                $annuaire = $this->AnnuaireModele->chargerAnnuaire($id_annuaire);

                if (!isset($donnees['informations'])) {
                        $donnees['informations'] = array();
                }

                $donnees['id_annuaire'] = $id_annuaire;

                return $this->getVue(Config::get('dossier_squelettes_formulaires').'identification',$donnees);
        }

        public function loggerUtilisateur($utilisateur, $pass) {
                $this->objet_identification = Config::get('objet_identification');

                $this->creerCookie($utilisateur, $pass);

                // Loguer l'utilisateur
                $this->objet_identification->username = $utilisateur;
                $this->objet_identification->password = $pass;
                $this->objet_identification->login();

                return true;
        }

        public function deLoggerUtilisateur() {
                $this->objet_identification = Config::get('objet_identification');
                $this->objet_identification->logout();
                return true;
        }

        public function setUtilisateur($nom_utilisateur) {
                $this->objet_identification = Config::get('objet_identification');
                $this->objet_identification->setAuth($nom_utilisateur);
                $pass = $this->objet_identification->password;

                $this->creerCookie($nom_utilisateur, $pass, true);
        }

        public function creerCookie($utilisateur, $pass, $pass_deja_crypte = false) {
                $this->objet_identification = Config::get('objet_identification');

                // Expiration si l'utilisateur ne referme pas son navigateur
                $this->objet_identification->setExpire(0);
                $this->objet_identification->setIdle(0);

                // Création d'un cookie pour rendre permanente l'identification de Papyrus
                $pass_crypt = (!$pass_deja_crypte) ? md5($pass) : $pass;
                $cookie_val = $pass_crypt.$utilisateur;
                setcookie(session_name().'-memo', $cookie_val, 0, '/');
        }

        public function obtenirLoginUtilisateurParCookie() {
                $nom_session = Config::get('nom_session');

                if (isset($_COOKIE[$nom_session])) {
                        $cookie_val = $_COOKIE[$nom_session];
                        $login_utilisateur = substr($cookie_val, '32', strlen($cookie_val));
                        return $login_utilisateur;
                } else {
                        return false;
                }
        }
}
?>