diff --git a/Project/php/model/AbsModel.php b/Project/php/model/AbsModel.php new file mode 100644 index 0000000..e2d8739 --- /dev/null +++ b/Project/php/model/AbsModel.php @@ -0,0 +1,42 @@ +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(); + } +} \ No newline at end of file diff --git a/Project/php/model/MdlAdmin.php b/Project/php/model/MdlAdmin.php index 0646337..06c4801 100755 --- a/Project/php/model/MdlAdmin.php +++ b/Project/php/model/MdlAdmin.php @@ -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(){ diff --git a/Project/php/model/MdlStudent.php b/Project/php/model/MdlStudent.php index e05230d..b012259 100755 --- a/Project/php/model/MdlStudent.php +++ b/Project/php/model/MdlStudent.php @@ -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'])){