$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; }