/** * Page de connexion */ public function login() { if (isset($_POST['login-submit'])) { // Si on a reçu une soumission de formulaire if (!isset($_POST['email']) || empty($_POST['email']) || !isset($_POST['password']) || empty($_POST['password'])) { // S'il manque des informations $this->redirectToRoute('login'); } $authManager = new \W\Security\AuthentificationManager(); $userId = $authManager->isValidLoginInfo($_POST['email'], $_POST['password']); if ($userId) { // Les infos sont cohérentes $usersManager = new \Manager\UserManager(); $user = $usersManager->find($userId); unset($user['password']); // Enregistrement des infos utilisateur en session $authManager->logUserIn($user); // Retour à l'accueil $this->redirectToRoute('home'); } // Si il y a une erreur dans le login ou le mot de passe $this->show('default/login', ['errorConnection' => true]); } // on va sur la page de login de base $this->show('default/login'); }
public function check() { $authentificationManager = new \W\Security\AuthentificationManager(); $loggedUser = $authentificationManager->getLoggedUser(); //si l'utilisateur est déjà connecté... if ($loggedUser) { return true; } //si on a un cookie de w_remember_me if (!empty($_COOKIE['kikala_remember_me'])) { //check en base de données que les données sont les bonnes $cookieData = json_decode($_COOKIE['kikala_remember_me'], true); $userManager = new \Manager\UserManager(); $user = $userManager->find($cookieData['id']); //si le hash du cookie verifie le hash en bdd if (password_verify($cookieData['token'], $user['tokenCookie'])) { $authentificationManager->logUserIn($user); return true; } else { //efface le cookie erroné setcookie('kikala_remember_me', '', 0, '/'); return false; } } return false; }
function isComfirmedAccount($id) { $usermanager = new \Manager\UserManager(); $user = $usermanager->find($id); if ($user['subscription'] == 0) { $response = false; } else { $response = true; } //die($response); return $response; }
public function mailPasswordRecovery($token, $id) { unset($_SESSION['error']); if (isset($token) && isset($id)) { $usermanager = new \Manager\UserManager(); $auth = new \W\Security\AuthentificationManager(); $user = $usermanager->find($id); $tokenVerif = $user['token']; if (password_verify($token, $tokenVerif)) { $usermanager->update(['token' => '', 'token_timestamp' => 0], $id); $auth->logUserIn($user); $_SESSION['error']['forgetpassword'] = "******"; $this->show('user/changepassword', ['id' => $id]); } else { $_SESSION['error']['forgetpassword'] = "******"; } } else { $_SESSION['error']['forgetpassword'] = "******"; } $this->show('default/home'); }
/** * Page Détail d'une formation */ public function detailFormation($id) { $formationManager = new \Manager\FormationManager(); $formation = $formationManager->find($id); // $register : permet de contrôler si l'utilisateur peut s'inscrire à la formation // $kikos : permet de contrôler si l'utilisateur a suffisemment de kikos pour s'inscrire $kikos = false; $register = false; $authentificationManager = new \W\Security\AuthentificationManager(); $inscription = new \Manager\InscriptionManager(); if ($authentificationManager->getLoggedUser()) { $loggedUser = $this->getUser(); // utilisateur est-il déjà inscrit à la formation ? $register = $inscription->checkInscription($id, $loggedUser['id']); $kikos = true; // contrôle si assez de kikos pour s'inscrire à une formation if (!$register) { if ($loggedUser['credit'] == 0) { $kikos = false; } } } // Récupère le nombre d'inscrit à la formation $nbrInscrit = $inscription->countInscription($id); // récupération des données du formateur $kikoUser = new \Manager\UserManager(); $kikologue = $kikoUser->find($formation['userId']); $date = \DateTime::createFromFormat('Y-m-d H:i:s', $formation['dateCreated']); $formation['dateCreated'] = $date->format('j/m/Y'); $date = \DateTime::createFromFormat('Y-m-d H:i:s', $formation['dateFormation']); $formation['dateFormation'] = $date->format('j/m/Y'); $duration = explode(":", $formation['duration']); $formation['duration'] = $duration[0] . 'h' . $duration[1] . 'min'; if ($formation['image'] == '') { $formation['image'] = 'defaultformation.png'; } $this->show('formation/detail_formation', ["formation" => $formation, "register" => $register, "kikos" => $kikos, "nbrPlace" => $formation['totalNumberPlace'] - $nbrInscrit, "kikologue" => $kikologue]); }
<?php //autochargement des classes require "../vendor/autoload.php"; include 'assets/inc/functions.php'; //configuration require "../app/config.php"; //rares fonctions globales require "../W/globals.php"; //instancie notre appli en lui passant la config et les routes $app = new W\App($w_routes, $w_config); if (isset($_COOKIE['auth']) && !isset($_SESSION['user'])) { $auth = $_COOKIE['auth']; $auth = explode('-----', $auth); $usermanager = new \Manager\UserManager(); $user = $usermanager->find($auth[0]); $key = sha1($user['username'] . $user['password'] . $_SERVER['REMOTE_ADDR']); if ($key == $auth[1]) { $auth = new \W\Security\AuthentificationManager(); $auth->logUserIn($user); setcookie("auth", $user['id'] . '-----' . $key, time() + 3600 * 24 * 3, '/', '127.0.0.1', false, true); } else { setcookie("auth", "", time() - 3600, '/', '127.0.0.1', false, true); } } //exécute l'appli $app->run();
public function updateRecupUser($userId) { // je récupère la ligne en DB $userManager = new \Manager\UserManager(); $currentUser = $userManager->find($userId); // je regarde si l'utilisateur a mis les 2 même mot de passe if (isset($_POST['password']) && isset($_POST['password-confirm']) && !empty($_POST['password']) && !empty($_POST['password-confirm'])) { // je compare si les mots de passe sont egaux if ($_POST['password'] == $_POST['password-confirm']) { // si oui, je teste les autres champs if (isset($_POST['nom']) && isset($_POST['prenom']) && isset($_POST['email']) && !empty($_POST['nom']) && !empty($_POST['prenom']) && !empty($_POST['email'])) { // on filtre les données $nom = $this->filterData($_POST['nom']); $prenom = $this->filterData($_POST['prenom']); $email = filter_var($_POST['email'], FILTER_VALIDATE_EMAIL); $userManager->update(['nom' => $nom, 'prenom' => $prenom, 'email' => $email, 'password' => password_hash($_POST['password'], PASSWORD_DEFAULT)], $userId); $this->redirectToRoute('login'); } } // les mdp sont différents $this->show('user/recup_error', ['errorPass' => true]); } }
/** * Page de connexion */ public function login() { $errorconnect = ''; // vérification de la combinaison d'email et mdp présents en bdd if (!empty($_POST)) { $email = $_POST['email']; $password = $_POST['password']; if (isset($_POST['stayLogin'])) { $stayLogin = $_POST['stayLogin']; } else { $stayLogin = false; } $authentificationManager = new \W\Security\AuthentificationManager(); $result = $authentificationManager->isValidLoginInfo($email, $password); // si identifiants OK if ($result > 0) { // on récupère l'email en base de donnée $userManager = new \Manager\UserManager(); $user = $userManager->find($result); // on le connecte $authentificationManager->logUserIn($user); // on crée un cookies si l'utilisateur veut rester connecté if ($stayLogin) { // création d'un token pour le cookie $token = \W\Security\StringUtils::randomString(32); // hask du tocken et json_encode du value du cookies $tokenHash = password_hash($token, PASSWORD_DEFAULT); $value = json_encode(["id" => $user['id'], "token" => $token]); setcookie("kikala_remember_me", $value, time() + 3660, '/'); // MAJ de la BDD avec le token du cookie $userManager->update(['tokenCookie' => $tokenHash], $user['id']); } $this->redirectToRoute("home"); } else { $errorconnect = "Email inconnu ou mot de passe incorrect"; } } // affiche la page $this->show('user/login', ['error' => $errorconnect]); }