Example #1
0
 public function membres($action, $id, $vars)
 {
     switch ($action) {
         /**** GET ****/
         case 'get':
             $vars['titrePage'] = 'Les membres';
             // <h1> de la page
             $membreDAO = new MembreDAO(BDD::getInstancePDO());
             $vars['membres'] = $membreDAO->getAllForTable();
             $this->vue->display('admin/membres_get_all.twig', $vars);
             exit;
             /**** EDIT ****/
         /**** EDIT ****/
         case 'edit':
             $vars['titrePage'] = 'Modification d\'un membre';
             // <h1> de la page
             $membreDAO = new MembreDAO(BDD::getInstancePDO());
             $vars['membre'] = $membreDAO->getOne($id);
             $groupeDAO = new GroupeDAO(BDD::getInstancePDO());
             $vars['groupes'] = $groupeDAO->getAll();
             // Si un formulaire a été envoyé
             if (!empty($_POST)) {
                 // Si le formulaire est valide au niveau faille CSRF
                 if (!empty($_POST['jetonCSRF']) && $_POST['jetonCSRF'] == $_SESSION['jetonCSRF']) {
                     // On essaye de faire les modifications
                     $res = Membre::edit($_POST, $id);
                     if ($res->success) {
                         $res->redirect = '/admin/membres';
                     }
                     echo json_encode($res);
                     exit;
                 }
             }
             $this->vue->display('admin/membre_edit.twig', $vars);
             exit;
             /**** DROP ****/
         /**** DROP ****/
         case 'drop':
             if (!empty($_POST)) {
                 // Si le formulaire est valide au niveau faille CSRF
                 if (!empty($_POST['jetonCSRF']) && $_POST['jetonCSRF'] == $_SESSION['jetonCSRF']) {
                     echo json_encode(Membre::delete($id));
                 }
             }
             exit;
         default:
             $this->vue->display('404.twig', $vars);
             exit;
     }
 }
Example #2
0
// Charge l'autoloader de Composer
require 'vendor/autoload.php';
// Charge l'autoloader de classe
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';
Example #3
0
 public function getAllForOneGroupeTree($id_groupe)
 {
     $res['id_groupe'] = $id_groupe;
     $res['droits'] = $this->getAllForOneGroupe($id_groupe);
     $groupeDAO = new GroupeDAO(BDD::getInstancePDO());
     $groupe = $groupeDAO->getOne($id_groupe);
     if (!empty($groupe->id_groupe_parent)) {
         $res['groupe_parent'] = $this->getAllForOneGroupeTree($groupe->id_groupe_parent);
     }
     return $res;
 }
Example #4
0
 /**
  * Vérifie et inscrit un membre
  * @param array $param Les attributs de l'inscription d'un membre
  * @return object 2 attributs, bool success et array string msg
  * @static
  */
 public static function inscription(&$param)
 {
     // Verification sur les champs du formulaire
     $resCheck = self::checkInscription($param);
     $res = $resCheck;
     // Si le formulaire a bien ete rempli
     if ($resCheck->success === true) {
         // Creation de l'objet Membre
         $groupeDAO = new GroupeDAO(BDD::getInstancePDO());
         $groupe = $groupeDAO->getOneByLibelle('membre');
         $membre = new Membre(array('id_membre' => DAO::UNKNOWN_ID, 'pseudo' => $param['pseudo'], 'email' => $param['email'], 'password' => Membre::cryptMDP($param['password']), 'id_groupe' => $groupe->id_groupe, 'bloquer' => 0));
         $membreDAO = new MembreDAO(BDD::getInstancePDO());
         // Sauvegarde de l'objet Membre dans la BDD
         if (($resSave = $membreDAO->save($membre)) !== false) {
             $actionDAO = new ActionDAO(BDD::getInstancePDO());
             $action = new Action(array('id_action' => DAO::UNKNOWN_ID, 'libelle' => 'Inscription', 'id_membre' => $resSave->id_membre));
             $actionDAO->save($action);
             $params = array('pseudo' => $param['pseudo'], 'sujet' => 'Inscription');
             $mail = new Mail($param['email'], '[Technote] Inscription', 'mail_inscription.twig', $params);
             $mail->sendMail();
             $res->success = true;
             $res->msg[] = 'Inscription réussie';
         } else {
             $res->success = false;
             $res->msg[] = 'Erreur BDD';
         }
     }
     return $res;
 }
Example #5
0
    public function getTreeOfOneGroupe($id_groupe)
    {
        $req = $this->pdo->prepare('SELECT *
									FROM groupe
									WHERE id_groupe = :id_groupe');
        $req->execute(array('id_groupe' => $id_groupe));
        $groupeDAO = new GroupeDAO(BDD::getInstancePDO());
        if (($groupe = $req->fetch()) !== false) {
            $groupe->groupe_parent = $groupeDAO->getTreeOfOneGroupe($groupe->id_groupe_parent);
            return new DroitGroupe(get_object_vars($groupe));
        } else {
            return false;
        }
    }