Commit 178e3554 authored by Julien Ait azzouzene's avatar Julien Ait azzouzene
Browse files

feat: validation de recettes / modification de recettes par un admin

parent d8decb25
Loading
Loading
Loading
Loading
+16 −1
Original line number Diff line number Diff line
@@ -12,6 +12,8 @@ require_once 'src/controllers/accueil.php';
require_once 'src/controllers/pageRecette.php';
require_once 'src/controllers/pageConnexion.php';
require_once 'src/controllers/connexion.php';
require_once 'src/controllers/recettesAdmin.php';
require_once 'src/controllers/validationRecette.php';

try{
    session_start();
@@ -51,10 +53,23 @@ try{

        case 'detail-recette':
            $idRecette = getVariable_GET('idRecette');

            $controleur = new PageRecetteControleur($idRecette);
            break;

        case 'recettesAdmin':
            $controleur = new RecettesAdminControleur();
            break;

        case 'examenRecette':
            $idRecette = getVariable_GET('idRecette');
            $controleur = new PageRecetteControleur($idRecette, true);
            break;

        case 'validerRecette':
            $idRecette = getVariable_GET('idRecette');
            $controleur = new ValidationRecetteControleur($idRecette);
            break;

        default:
            throw new Exception("la page demandée n'a pas été trouvée");
    }
+7 −0
Original line number Diff line number Diff line
@@ -21,6 +21,13 @@ VALUES
'$2y$10$KdMnkhAn385H2QYaQy.DvOa8zTpq0X.RigK3uLKY9k60bwHPUJhGC', 
'test@test.fr', 'Test', 'Jean', '2023-11-05 12:18:13', 'E', 'A');

INSERT INTO CUI_UTILISATEUR (UTIL_PSEUDO, UTIL_MDP, UTIL_EMAIL, UTIL_NOM, UTIL_PRENOM, UTIL_DATE_INSCRIPTION, UTIL_TYPE, UTIL_STATUT)
VALUES
('admin',
'$2y$10$0yFsSedzqaLmYWom8Dwo1.6UGXZGe5s1Jvw3/0T/BVOl.SmPgd6HK',
'admin@admin.fr', 'Admin', 'Gilbert', NOW(), 'A', 'A'
);

-- -------TAG------------- --

INSERT INTO CUI_TAG(TAG_INTITULE, TAG_DESCRIPTION)
+15 −2
Original line number Diff line number Diff line
@@ -3,6 +3,7 @@
declare(strict_types=1);

require_once 'src/controllers/controleur.php';
require_once 'src/controllers/connexion.php';

require_once 'src/model/recette.php';
require_once 'src/model/recetteManager.php';
@@ -11,15 +12,27 @@ require_once 'templates/pageRecette.php';

class PageRecetteControleur extends Controleur {
    private Recette $recette;
    private bool $admin;

    public function __construct(string $idRecette, bool $admin = false){
        $this->admin = $admin;

    public function __construct(string $idRecette){
        $this->recette = (new RecetteManager)->getRecette($idRecette);
        if(! $this->recette){
            throw new Exception("cette recette n'existe pas");
        }

        if(! $admin){
            return;
        }

        $utilisateur = ConnexionController::estConnecte();
        if(! $utilisateur || ! $utilisateur->estAdministrateur()){
            throw new Exception('accès refusé');
        }
    }

    public function executer() {
        afficherPageRecette($this->recette);
        afficherPageRecette($this->recette, $this->admin);
    }
}
 No newline at end of file
+21 −0
Original line number Diff line number Diff line
<?php

require_once 'src/model/recetteManager.php';
require_once 'src/controllers/controleur.php';
require_once 'src/controllers/connexion.php';
require_once 'src/model/utilisateur.php';

require_once 'templates/nosRecettes.php';

class RecettesAdminControleur extends Controleur{

    public function executer() {
        $utilisateur = ConnexionController::estConnecte();
        if(! $utilisateur || ! $utilisateur->estAdministrateur()){
            throw new Exception('accès refusé');
        }

        $recettes = (new RecetteManager)->getRecettesNonValidees();
        afficherListeRecettes($recettes, true);
    }
}
 No newline at end of file
+36 −0
Original line number Diff line number Diff line
<?php

declare(strict_types=1);

require_once 'src/controllers/controleur.php';
require_once 'src/controllers/connexion.php';

require_once 'src/model/recetteManager.php';

class ValidationRecetteControleur extends Controleur{
    private Recette $recette;

    public function __construct(string $idRecette){
        $utilisateur = ConnexionController::estConnecte();

        if(! $utilisateur || ! $utilisateur->estAdministrateur()){
            throw new Exception('accès refusé');
        }

        $this->recette = (new RecetteManager)->getRecette($idRecette);
    }

    public function executer(){
        $recetteManager = new RecetteManager;
        $recetteModifiee = $recetteManager->getRecetteModifiee($this->recette->getId());

        if($recetteModifiee){
            $recetteManager->validerModification($recetteModifiee);
        } else {
            $recetteManager->validerRecette($this->recette);
        }

        header('Location: .?action=recettesAdmin');
        exit;
    }
}
 No newline at end of file
Loading