138 lines
3.4 KiB
PHP
138 lines
3.4 KiB
PHP
<?php
|
|
require_once 'Framework/Modele.php';
|
|
class Utilisateur extends Modele {
|
|
|
|
public function connecter($login, $mdp)
|
|
{
|
|
$sql = "call sp_a_get_utilisateur_pass(?);";
|
|
|
|
$utilisateur = $this->executerRequete($sql, array($login));
|
|
|
|
|
|
|
|
if ($utilisateur->rowCount() == 1)
|
|
{
|
|
$user = $utilisateur->fetch();
|
|
|
|
|
|
$hash = $user['motPass'];
|
|
|
|
|
|
|
|
return (password_verify($mdp, $hash));
|
|
} else
|
|
return false;
|
|
}
|
|
|
|
public function getUtilisateur($login)
|
|
{
|
|
$sql = "call sp_a_get_utilisateur(?);";
|
|
|
|
$utilisateur = $this->executerRequete($sql, array($login));
|
|
if ($utilisateur->rowCount() == 1)
|
|
return $utilisateur->fetch();
|
|
else
|
|
throw new Exception("Aucun utilisateur ne correspond aux identifiants fournis");
|
|
}
|
|
|
|
public function changerpass($login, $ancmdp, $nvmdp)
|
|
{
|
|
$hash = password_hash($nvmdp, PASSWORD_DEFAULT);
|
|
$sql = "call sp_a_changer_mot_passe_assure(?, ?)";
|
|
$this->executerRequete($sql, array($hash, $login));
|
|
$_SESSION['passExpired'] = false;
|
|
$_SESSION['passAchanger'] = false;
|
|
}
|
|
|
|
public function viderTablesTemporairesUser($login)
|
|
{
|
|
$idSaisie = $_SESSION['idSaisie'];
|
|
$sql = "call sp_a_viderTablesTemporairesUser(?, ?)";
|
|
$this->executerRequete($sql, array($login, $idSaisie));
|
|
}
|
|
|
|
public function changerlangueutilisateur()
|
|
{
|
|
$user = $_SESSION['login'];
|
|
$codeLangue = $_SESSION['lang'];
|
|
|
|
if($codeLangue == "en_US")
|
|
{
|
|
$codeNewLang = "fr_FR";
|
|
}
|
|
else
|
|
{
|
|
$codeNewLang = "en_US";
|
|
}
|
|
|
|
$sql = "call sp_a_changer_langue_utilisateur(?, ?);";
|
|
|
|
$this->executerRequete($sql, array($user, $codeNewLang));
|
|
|
|
$_SESSION['lang'] = $codeNewLang;
|
|
setcookie('lang', $codeLangue, time()+365*24*3600, '/');
|
|
$_COOKIE['lang'] = $codeNewLang;
|
|
}
|
|
|
|
public function verifiermotpassdefaut($codeSociete, $mdp)
|
|
{
|
|
$sql = "call sp_get_mot_pass_reinit(?);";
|
|
|
|
$resultat = $this->executerRequete($sql, array($codeSociete));
|
|
|
|
if ($resultat->rowCount() == 1)
|
|
{
|
|
$user = $resultat->fetch();
|
|
$hash = $user['motPassReinit'];
|
|
return (password_verify($mdp, $hash));
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
public function getcomplexitepassword()
|
|
{
|
|
$sql = 'SELECT concat("#",complexitePassWord,"#") as complexitePassWord, longueurPassWord
|
|
FROM societeuser where (codeSociete=?) limit 1;';
|
|
|
|
$resultat = $this->executerRequete($sql, array($_SESSION['codeSociete']));
|
|
|
|
return $resultat->fetch(PDO::FETCH_ASSOC);
|
|
}
|
|
|
|
public function respecteoldpass($login, $mdp)
|
|
{
|
|
$respecteoldpass = true;
|
|
|
|
$sql = "call sp_get_utilisateur_old_pass(?);";
|
|
|
|
$resultat = $this->executerRequete($sql, array($login));
|
|
|
|
$olds_pass = $resultat->fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
foreach ($olds_pass as $old_pass)
|
|
{
|
|
$hash = $old_pass['motPass'];
|
|
if (password_verify($mdp, $hash))
|
|
{
|
|
$respecteoldpass = false;
|
|
break;
|
|
}
|
|
}
|
|
|
|
return $respecteoldpass;
|
|
}
|
|
|
|
public function changerlangueutilisateurconnexion($login, $codeNewLang)
|
|
{
|
|
$sql = "call sp_a_changer_langue_utilisateur(?, ?);";
|
|
|
|
$this->executerRequete($sql, array($login, $codeNewLang));
|
|
|
|
$_SESSION['lang'] = $codeNewLang;
|
|
setcookie('lang', $codeNewLang, time()+365*24*3600, '/');
|
|
}
|
|
|
|
} |