assure/Modele/Utilisateur.php
2025-12-05 09:34:39 +00:00

138 lines
3.4 KiB
PHP
Executable File

<?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, '/');
}
}