/**
  * 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');
 }
Exemplo n.º 2
0
 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;
 }
Exemplo n.º 3
0
function isComfirmedAccount($id)
{
    $usermanager = new \Manager\UserManager();
    $user = $usermanager->find($id);
    if ($user['subscription'] == 0) {
        $response = false;
    } else {
        $response = true;
    }
    //die($response);
    return $response;
}
Exemplo n.º 4
0
 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');
 }
Exemplo n.º 5
0
 /**
  * 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]);
 }
Exemplo n.º 6
0
<?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]);
     }
 }
Exemplo n.º 8
0
 /**
  * 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]);
 }