Esempio n. 1
0
 public function membre($action, $id, $vars)
 {
     $membreDAO = new MembreDAO(BDD::getInstancePDO());
     switch ($action) {
         /**** GET ****/
         case 'get':
             $vars['titrePage'] = 'Profil';
             // <h1> de la page
             $vars['active_profil'] = 1;
             // Active le style dans le menu profil
             // On met à jour les variables de profil et les droits du membre
             $_SESSION['user']->rechargerProfil();
             // On récupère son profil
             $vars['profil'] = $_SESSION['user']->getProfil();
             $this->vue->display('membre_get.twig', $vars);
             exit;
             /**** ADD ****/
         /**** ADD ****/
         case 'add':
             $vars['titrePage'] = 'Inscription';
             // <h1> de la page
             $vars['active_profile'] = 1;
             // Active le style dans le menu profil
             // Si un formulaire a été envoyé
             if (!empty($_POST)) {
                 // On essaye d'inscrire l'utilisateur
                 echo json_encode(Membre::inscription($_POST));
                 exit;
             }
             $this->vue->display('membre_add.twig', $vars);
             exit;
             /**** EDIT ****/
         /**** EDIT ****/
         case 'edit':
             $vars['active_profile'] = 1;
             // Active le style dans le menu profil
             // Si l'utilisateur est connecté alors édition de profil
             if ($_SESSION['user']) {
                 $vars['titrePage'] = 'Modification du profil';
                 // <h1> de la page
                 // 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 = $_SESSION['user']->editProfil($_POST);
                         if (!empty($_POST['updateEmail']) && $res->success) {
                             $res->update['email'] = $_SESSION['user']->email;
                         }
                         echo json_encode($res);
                         exit;
                     }
                 }
                 $this->vue->display('membre_edit.twig', $vars);
             } else {
                 $vars['titrePage'] = 'Mot de passe oublié';
                 // <h1> de la page
                 // Si la clé de réinitialisation n'est pas vide et est correcte alors formulaire de changement du mot de passe
                 if (!empty($_GET['cle']) && ($membre = $membreDAO->checkCleResetPass($_GET['cle'])) !== false) {
                     // Réinitialisation du mot de passe
                     if (!empty($_POST)) {
                         $res = $membre->resetLostPass($_POST);
                         if ($res->success) {
                             $res->redirect = '/accueil';
                         }
                         echo json_encode($res);
                         exit;
                     }
                     $vars['etape'] = 'formMDP';
                 } elseif (!empty($_POST)) {
                     // On essaye d'envoyé le mail avec le lien de réinitialisation du mot de passe
                     echo json_encode(Membre::sendMailLostPass($_POST));
                     exit;
                 }
                 $this->vue->display('membre_lostMDP.twig', $vars);
             }
             exit;
             /**** DROP ****/
         /**** DROP ****/
         case 'drop':
             $vars['active_profile'] = 1;
             // Active le style dans le menu profil
             exit;
         default:
             $this->vue->display('404.twig', $vars);
             exit;
     }
 }