garant/Modele/Utilisateur.php
2025-12-01 19:18:15 +00:00

96 lines
2.5 KiB
PHP

<?php
require_once 'Framework/Modele.php';
class Utilisateur extends Modele {
public function connecter($login, $mdp)
{
$sql = "SELECT id, motPass FROM gc_utilisateur WHERE codeUtilisateur=?";
$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_gc_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_gc_changer_mot_passe_gc(?, ?)";
$this->executerRequete($sql, array($hash, $login));
$_SESSION['passExpired'] = false;
$_SESSION['passAchanger'] = false;
}
public function viderTablesTemporairesUser($login)
{
$idSaisie = $_SESSION['idSaisie'];
$sql = "call sp_gc_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_gc_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 changerlangueutilisateurconnexion($login, $codeNewLang)
{
$sql = "call sp_gc_changer_langue_utilisateur(?, ?);";
$this->executerRequete($sql, array($login, $codeNewLang));
$_SESSION['lang'] = $codeNewLang;
setcookie('lang', $codeNewLang, time()+365*24*3600, '/');
}
}