ajout quelque commentaire
Some checks failed
Deploy production (servyass) / deploy (push) Has been cancelled
Some checks failed
Deploy production (servyass) / deploy (push) Has been cancelled
This commit is contained in:
parent
18d74fc687
commit
8b094379ca
6 changed files with 46 additions and 9 deletions
|
|
@ -15,7 +15,9 @@
|
|||
*/
|
||||
|
||||
class AdminCtrl extends MotherCtrl{
|
||||
|
||||
/**
|
||||
* Page Admin
|
||||
*/
|
||||
public function admin(){
|
||||
|
||||
if (!isset($_SESSION['user']) && ($_SESSION['user']['user_status'] != 1 )){
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
use Smarty\Smarty;
|
||||
|
||||
/**
|
||||
* Le controller de la partie accessible uniquement par l'admin
|
||||
* Controller Mère qui permet de gèrer l'affichage des pages
|
||||
* @author Yasser
|
||||
*/
|
||||
|
||||
|
|
@ -14,6 +14,9 @@
|
|||
|
||||
/**
|
||||
* Méthode d'affichage des pages
|
||||
* @param string $strView Le fichier a afficher
|
||||
* @param bool $boolDisplay Booléen pour afficher web ou mail
|
||||
* @return page|object affiche la page ou retourne l'objet pour le mail
|
||||
*/
|
||||
protected function _display($strView, bool $boolDisplay = true){
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
|
||||
/**
|
||||
* Le controller de la page d'aide utilisateur
|
||||
* Le controller des pages annexes
|
||||
* @author Laura & Besnik
|
||||
*/
|
||||
|
||||
|
|
|
|||
|
|
@ -38,15 +38,12 @@
|
|||
$hash_a_verifier = hash('sha256', $token_du_cookie);
|
||||
|
||||
$objUserModel = new UserModel;
|
||||
// 2. On cherche le jeton dans TA table "tokens" (avec token_user_id)
|
||||
$row = $objUserModel->getTokenUser($hash_a_verifier);
|
||||
|
||||
if ($row) {
|
||||
// 3. Jeton trouvé ! On récupère les infos de l'utilisateur
|
||||
$user = $objUserModel->findUserById($row['token_user_id']);
|
||||
|
||||
if ($user) {
|
||||
// 4. On recrée la session comme lors d'un login normal
|
||||
$_SESSION['user'] = $user;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,7 +14,9 @@
|
|||
*/
|
||||
|
||||
class UserCtrl extends MotherCtrl {
|
||||
|
||||
/**
|
||||
* Page Login
|
||||
*/
|
||||
public function login(){
|
||||
|
||||
$strMail = $_POST['user_mail']??"";
|
||||
|
|
@ -56,7 +58,9 @@ class UserCtrl extends MotherCtrl {
|
|||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Fonction pour ce déconnecter
|
||||
*/
|
||||
public function logout(){
|
||||
|
||||
if (isset($_COOKIE['remember_me'])) {
|
||||
|
|
|
|||
|
|
@ -73,6 +73,12 @@
|
|||
return $rqPrep->execute();
|
||||
}
|
||||
|
||||
/**
|
||||
* Méthode pour sauvegarder l'utilisateur lorsqu'il veut être souvenue
|
||||
* @param int $userId l'id de l'utilisateur a se rappeler
|
||||
* @param string $token Token hashé unique lié à l'utilisateur à se rappeler
|
||||
* @return bool Est-ce que la requête s'est bien passée
|
||||
*/
|
||||
public function remember(int $userId, string $token):bool{
|
||||
$strRq = "INSERT INTO tokens (token_user_id, token_hash, token_created_at, token_expire_at) VALUES (:id, :token, NOW(), :exp)";
|
||||
$rqPrep = $this->_db->prepare($strRq);
|
||||
|
|
@ -84,6 +90,11 @@
|
|||
return $rqPrep->execute();
|
||||
}
|
||||
|
||||
/**
|
||||
* Méthode pour récupperer l'utilisateur par rapport au cookie enregistrer
|
||||
* @param string $hash Token hashé unique lié à l'utilisateur
|
||||
* @return bool Est-ce que la requête s'est bien passée
|
||||
*/
|
||||
|
||||
public function getTokenUser(string $hash){
|
||||
$strRq = $this->_db->prepare("SELECT token_user_id FROM tokens WHERE token_hash = :hash AND token_expire_at > NOW()");
|
||||
|
|
@ -91,12 +102,22 @@
|
|||
return $strRq->fetch();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Méthode pour supprimer le token lors de la déconnexion
|
||||
* @param string $hash Token hashé unique lié à l'utilisateur
|
||||
* @return bool Est-ce que la requête s'est bien passée
|
||||
*/
|
||||
public function deleteToken(string $hash){
|
||||
$strRq = $this->_db->prepare("DELETE FROM tokens WHERE token_hash = :hash");
|
||||
return $strRq->execute(['hash' => $hash]);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Méthode pour mettre a jour l'utilisateur
|
||||
* @param object $objUser L'objet user a mettre à jour
|
||||
* @return bool Est-ce que la requête s'est bien passée
|
||||
*/
|
||||
public function update(object $objUser):bool{
|
||||
$strRq = "UPDATE users SET
|
||||
user_name = :name,
|
||||
|
|
@ -194,6 +215,11 @@
|
|||
return $prep->fetch();
|
||||
}
|
||||
|
||||
/**
|
||||
* Récupère les informations d'un utilisateur par son ID
|
||||
* @param string $strPseudo Pseudo de l'utilisateur
|
||||
* @return array Tableau associatif (ou false si pas trouvé)
|
||||
*/
|
||||
public function findUserByPseudo(string $strPseudo): array|bool {
|
||||
|
||||
$strRq = "SELECT user_id,user_image, user_status ,user_name, user_firstname, user_pseudo, user_mail, user_phone, user_work, user_location, user_description, authorisation_name
|
||||
|
|
@ -207,6 +233,11 @@
|
|||
return $prep->fetch();
|
||||
}
|
||||
|
||||
/**
|
||||
* Verifie sur le pseudo entré n'est pas déjà utilisé
|
||||
* @param string $pseudo Pseudo a verifié
|
||||
* @return array Tableau associatif (ou false si pas trouvé)
|
||||
*/
|
||||
public function pseudoExists(string $pseudo): bool{
|
||||
|
||||
$rq = $this->_db->prepare("SELECT 1 FROM users WHERE user_pseudo = :pseudo LIMIT 1");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue