implémentation de la classe AbsModel (inchallah c'était une bonne idée)

php
Anthony RICHARD 1 year ago
parent 8d2f02fe64
commit 3f86ce7f86

@ -0,0 +1,42 @@
<?php
namespace model;
use gateway\UserGateway;
class AbsModel
{
protected UserGateway $gtw;
private string $role;
/**
* @param UserGateway $gtw
* @param string $role
*/
public function __construct(UserGateway $gtw, string $role)
{
$this->gtw = $gtw;
$this->role = $role;
}
public function connection($login, $password){
$cleanedLogin = strip_tags($login);
$cleanedPassword = strip_tags($password);
$student = $this->gtw->findUserByLoginPassword($cleanedLogin, $cleanedPassword);
if ($student) {
session_start();
$_SESSION['role'] = $this->role;
$_SESSION['login'] = $cleanedLogin;
return true;
}
else return false;
}
public function deconnexion(){
session_unset();
session_destroy();
$_SESSION = array();
}
}

@ -2,36 +2,16 @@
namespace model; namespace model;
class MdlAdmin use gateway\UserGateway;
class MdlAdmin extends AbsModel
{ {
/** /**
* @param UserGateway userGtw * @param UserGateway $userGtw
*/ */
public function __construct(UserGateway $userGtw) public function __construct(UserGateway $userGtw)
{ {
$this->gtw = $gtw; parent::__construct($userGtw, "admin");
}
public function connection($login, $password){
$cleanedLogin = strip_tags($login);
$cleanedPassword = strip_tags($password);
$student = $this->gtw->findUserByLoginPassword($cleanedLogin, $cleanedPassword);
if ($student) {
session_start();
$_SESSION['role'] = 'admin';
$_SESSION['login'] = $cleanedLogin;
return true;
}
else return false;
}
public function deconnexion(){
session_unset();
session_destroy();
$_SESSION = array();
} }
public function isAdmin(){ public function isAdmin(){

@ -2,40 +2,18 @@
namespace model; namespace model;
class MdlStudent use gateway\UserGateway;
{
protected UserGateway $gtw;
public function __construct($gtw){
$this->gtw = $gtw;
}
public function connection($login, $mdp){
// 1. Nettoyage des données (vous pouvez utiliser des méthodes de nettoyage spécifiques)
$cleanedLogin = strip_tags($login);
$cleanedPassword = strip_tags($mdp);
// 2. Appel Gateway pour vérifier les identifiants dans la base de données
$student = $this->gtw->findUserByLoginPassword($cleanedLogin,$cleanedPassword);
if ($student) { class MdlStudent extends AbsModel
// L'authentification a réussi, ajouter le rôle et le login à la session {
session_start(); /**
$_SESSION['role'] = 'student'; // Vous pouvez définir le rôle approprié * @param UserGateway $gtw
$_SESSION['login'] = $cleanedLogin; */
return true; public function __construct(UserGateway $gtw)
} else { {
throw Exception('problème d\'authentification'); parent::__construct($gtw, "student");
return false;
}
} }
public function deconnexion(){
session_unset();
session_destroy();
$_SESSION = array();
}
/* /*
public function isStudent(){ public function isStudent(){
if( isset ($_SESSION['login']) && isset ($_SESSION['role'])){ if( isset ($_SESSION['login']) && isset ($_SESSION['role'])){

Loading…
Cancel
Save