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;
class MdlAdmin
use gateway\UserGateway;
class MdlAdmin extends AbsModel
{
/**
* @param UserGateway userGtw
* @param UserGateway $userGtw
*/
public function __construct(UserGateway $userGtw)
{
$this->gtw = $gtw;
}
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();
parent::__construct($userGtw, "admin");
}
public function isAdmin(){

@ -2,40 +2,18 @@
namespace model;
class MdlStudent
{
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);
use gateway\UserGateway;
if ($student) {
// 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é
$_SESSION['login'] = $cleanedLogin;
return true;
} else {
throw Exception('problème d\'authentification');
return false;
}
class MdlStudent extends AbsModel
{
/**
* @param UserGateway $gtw
*/
public function __construct(UserGateway $gtw)
{
parent::__construct($gtw, "student");
}
public function deconnexion(){
session_unset();
session_destroy();
$_SESSION = array();
}
/*
public function isStudent(){
if( isset ($_SESSION['login']) && isset ($_SESSION['role'])){

Loading…
Cancel
Save