Exemple #1
0
 /**
  * Connecte un membre
  * @param array $param Les attributs pour se connecter
  * @return object 2 attributs, bool success et string msg
  * @static
  */
 public static function connexion(&$param)
 {
     $std = (object) array('success' => false, 'msg' => array());
     if (empty($param['pseudo'])) {
         $std->msg[] = 'Le pseudo n\'est pas renseigné';
         return $std;
     } elseif (empty($param['password'])) {
         $std->msg[] = 'Le mot de passe n\'est pas renseigné';
         return $std;
     }
     $membreDAO = new MembreDAO(BDD::getInstancePDO());
     if ($membreDAO->checkUserPass($param['pseudo'], $param['password']) === true) {
         if (($res = $membreDAO->connexion($param['pseudo'])) !== false) {
             if (!$res->bloquer) {
                 $_SESSION['user'] = $res;
                 // Récupère les doits du groupe du membre
                 $droitGroupeDAO = new DroitGroupeDAO(BDD::getInstancePDO());
                 $_SESSION['droits']['groupe'] = $droitGroupeDAO->getAllForOneGroupeTree($_SESSION['user']->id_groupe);
                 // Récupère les doits du membre
                 $droitMembreDAO = new DroitMembreDAO(BDD::getInstancePDO());
                 $_SESSION['droits']['membre'] = $droitMembreDAO->getAllForOneMembre($_SESSION['user']->id_membre);
                 $jeton = '';
                 if (isset($param['autoConnexion']) && $param['autoConnexion'] == 'on') {
                     Token::createToken();
                     $jeton = ' avec jeton';
                 }
                 $actionDAO = new ActionDAO(BDD::getInstancePDO());
                 $action = new Action(array('id_action' => DAO::UNKNOWN_ID, 'libelle' => "Connexion{$jeton} ({$_SERVER['REMOTE_ADDR']})", 'id_membre' => $_SESSION['user']->id_membre));
                 $actionDAO->save($action);
                 $std->success = true;
                 return $std;
             } else {
                 $std->msg[] = 'Votre compte a été bloqué';
             }
         } else {
             $std->msg[] = 'Erreur BDD';
         }
     } else {
         $std->msg[] = 'Couple login / mot de passe incorrect';
     }
     return $std;
 }
Exemple #2
0
require 'Autoloader.php';
Autoloader::Autoload();
// Démarre une session
session_start();
// Connecte le client s'il possède un cookie
$tokenDAO = new TokenDAO(BDD::getInstancePDO());
if (!isset($_SESSION['user'])) {
    $tokenDAO->checkToken();
}
// Si le client n'est pas connecté
if ($_SESSION['user'] === false) {
    // Récupère l'id du groupe Visiteur
    $groupeDAO = new GroupeDAO(BDD::getInstancePDO());
    $groupe = $groupeDAO->getOneByLibelle('Visiteur');
    // Récupère les doits du groupe Visiteur
    $droitGroupeDAO = new DroitGroupeDAO(BDD::getInstancePDO());
    $_SESSION['droits']['groupe'] = $droitGroupeDAO->getAllForOneGroupeTree($groupe->id_groupe);
    $_SESSION['droits']['membre'] = array();
}
// Créé le jeton pour éviter la faille CSRF
if (empty($_SESSION['jetonCSRF'])) {
    $_SESSION['jetonCSRF'] = hash('sha1', uniqid(rand(), true) . SALT_JETON_CSRF);
}
// Enregistre la visite si c'est la premiere de cette heure
$visite = new Visite(array('id_visite' => DAO::UNKNOWN_ID, 'ip' => $_SERVER['REMOTE_ADDR']));
$visite->checkVisite($visite);
// Récupération de l'URL
$controleur = !empty($_GET['url_controleur']) ? ucfirst($_GET['url_controleur']) : 'Main';
$page = !empty($_GET['url_page']) ? $_GET['url_page'] : 'accueil';
$action = !empty($_GET['url_action']) ? $_GET['url_action'] : 'get';
$id = !empty($_GET['url_id']) ? $_GET['url_id'] : NULL;
Exemple #3
0
    /**
     * Vérifie si un cookie de connexion est présent et est valide
     * Si oui remplie la variable de session avec un Membre, sinon session = False et destruction cookie
     */
    public function checkToken()
    {
        if (!empty($_COOKIE['token'])) {
            $req = $this->pdo->prepare('SELECT id_membre
					FROM token T 
					WHERE cle = :token AND date_expiration > NOW() AND actif = 1');
            $req->execute(array('token' => $_COOKIE['token']));
            if ($res = $req->fetch()) {
                $membreDAO = new MembreDAO(BDD::getInstancePDO());
                $_SESSION['user'] = $membreDAO->getOne($res->id_membre);
                // Récupère les doits du groupe du membre
                $droitGroupeDAO = new DroitGroupeDAO(BDD::getInstancePDO());
                $_SESSION['droits']['groupe'] = $droitGroupeDAO->getAllForOneGroupeTree($_SESSION['user']->id_groupe);
                // Récupère les doits du membre
                $droitMembreDAO = new DroitMembreDAO(BDD::getInstancePDO());
                $_SESSION['droits']['membre'] = $droitMembreDAO->getAllForOneMembre($_SESSION['user']->id_membre);
                return;
            }
        }
        setcookie('token', '', time());
        $_SESSION['user'] = false;
    }