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; } }
// 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';
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; }
/** * 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; }
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; } }