$this->renderer->render($response, 'auth/users/edit.php', compact('RouteHelper', 'token', 'ErrorsCtrl', 'user', $args));
     return $this->renderer->render($response, 'footer.php', compact('RouteHelper', $args));
 })->setName('auth/users/edit');
 $this->post('/edit', function ($request, $response, $args) {
     $RouteHelper = new \CoreHelpers\RouteHelper($this, $request, 'Edition utilisateur');
     $post = $request->getParsedBody();
     var_dump($post);
     $userMail = empty($post['id']) ? '' : \CoreHelpers\User::getMailFromId($post['id']);
     if (!empty($post['id']) && empty($userMail)) {
         $this->flash->addMessage('warning', "Utilisateur #" . $post['id'] . " inconnu.");
         return $response->withHeader('Location', $this->router->pathFor('auth/users/list'));
     }
     // Validation formulaire (ajoute ou mise à jour)
     // $userFields = array_keys(\CoreHelpers\User::getBlankFields());
     if (!empty($userMail)) {
         $curUser = \CoreHelpers\User::getUser($this->Auth, $userMail, null, true, false);
         $pswdAncienValidate = ['field' => null, 'hash' => $curUser['password']];
     } else {
         $curUser = null;
         $pswdAncienValidate = null;
     }
     $validate = ['first_name' => array('rule' => 'notEmpty', 'msg' => 'Entrez votre prénom'), 'last_name' => array('rule' => 'notEmpty', 'msg' => 'Entrez votre nom'), 'email' => array('rule' => 'email', 'msg' => 'Entrez un email valide'), 'password' => array('rule' => 'password', 'msg' => 'Les mots de passe ne concordent pas !', 'fields' => ['nouveau' => 'password', 'confirmation' => 'password_confirm', 'ancien' => $pswdAncienValidate], 'canBeSkiped' => !empty($post['id']))];
     $ErrorsCtrl = new \CoreHelpers\ErrorsController($validate);
     if ($ErrorsCtrl->validate($post)) {
         if ($this->Auth->sourceConfig != 'database') {
             // On a laissé faire les autres vérifications, mais si jamais on a pas accès à la bdd, on coupe !!
             return $this->Auth->forbidden($response, $this->router, 'auth/users/list', "Il n'est pas possible d'éditer les membres avec une configuration fichier. Migrez vers une configuration base de données.", 'danger');
         }
         if (!empty($userMail) && $userMail != $post['email'] || empty($userMail)) {
             // Si jamais on a un ajout de user: on check le mail
             // Si jamais on une MAJ de user, il faut checker si le mail est modifié que ce dernier n'existe pas déjà
 function loginUsingCas($ticket, $service)
 {
     $CAS = new \CoreHelpers\Cas($this->casUrl);
     try {
         $userEmail = $CAS->authenticate($ticket, $service);
     } catch (\Exception $e) {
         $this->flash->addMessage('warning', $e->getMessage());
         return false;
     }
     $user = !empty($userEmail) ? User::getUser($this, $userEmail, null, true) : null;
     if (!empty($user)) {
         if ($user['online'] == 1) {
             // si l'utilisateur est actif dans la BDD
             $_SESSION['Auth'] = array();
             $_SESSION['Auth'] = $user;
             $_SESSION['Auth']['loggedUsingCas'] = true;
             return true;
         } else {
             $this->flash->addMessage('warning', '<strong>Votre compte n\'est pas actif !</strong><br/>Veuillez attendre que les administrateurs activent votre compte ou contactez nous !');
         }
     } else {
         if ($userEmail == 'AuthenticationFailure' || $userEmail == "Cas return is weird" || $userEmail == "Return cannot be parsed") {
             $this->flash->addMessage('danger', $userEmail);
             return false;
         } else {
             if (!empty($userEmail)) {
                 $this->flash->addMessage('warning', "Vous n'avez pas les droits d'accéder au site.<br>Faites la demande aux responsables au besoin.");
             }
         }
     }
     return false;
 }