Commit cff7952e authored by plmorisse's avatar plmorisse
Browse files

feat: supprimer une recette en tant qu'admin

parent 6d784bad
Loading
Loading
Loading
Loading
+15.7 KiB
Loading image diff...
+29 −0
Original line number Diff line number Diff line
let bouton = document.getElementById("iconeSpr");
bouton.addEventListener("click", supprimer);

const params = new URLSearchParams(window.location.search);
const idRecette = params.get('idRecette');


function supprimer(){
    var confirmation = confirm("Voulez-vous supprimer cette recette?");
    if (confirmation) {
        supprimerRecette();
    } else {
    }
}

function supprimerRecette(){
    let requeteHTTP = new XMLHttpRequest();

    requeteHTTP.open("GET", "index.php?action=supprimerRecette&idRecette=" + idRecette, true);
    requeteHTTP.send();
    
    requeteHTTP.onload = function(){
        if(requeteHTTP.status === 200){
            document.location.href = ".?action=listeRecettes";
            return;
        }
        console.error("Erreur pendant la supression !");
    }
}
 No newline at end of file
+6 −0
Original line number Diff line number Diff line
@@ -13,6 +13,7 @@ require_once 'src/controllers/pageRecette.php';
require_once 'src/controllers/pageConnexion.php';
require_once 'src/controllers/connexion.php';
require_once 'src/controllers/pageModifierEdito.php';
require_once 'src/controllers/supprimer.php';

try{
    session_start();
@@ -59,6 +60,11 @@ try{
        case 'modifier-edito':
            $controleur = new ModifierEditoControleur();
            break;

        case 'supprimerRecette':
            $idRecette = getVariable_GET('idRecette');
            $controleur = new SupprimerRecetteControleur($idRecette);
            break;
        default:
            throw new Exception("la page demandée n'a pas été trouvée");
    }
+29 −0
Original line number Diff line number Diff line
<?php

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



class SupprimerRecetteControleur extends Controleur{

    private $idRecette;

    public function __construct($idRecette){
        $this->idRecette = $idRecette;
    }
    
    public function executer(){
        $utilisateur = ConnexionController::estConnecte();
        $estAdmin = $utilisateur && $utilisateur->estAdministrateur();
        if($utilisateur === false){
            return new Exception("Veuillez-vous connecter!");
        }
        $recette = (new RecetteManager)->getRecette($this->idRecette);
        if($estAdmin || $recette->getIdAuteur() === $utilisateur->getId()){
            (new RecetteManager)->supprimerRecette($recette);
        }
    }

}
 No newline at end of file
+6 −1
Original line number Diff line number Diff line
@@ -6,12 +6,17 @@

require_once 'templates/carteRecette.php';
require_once 'src/model/recette.php';
require_once 'src/controllers/connexion.php';

function afficherListeRecettes($recettes){
    $titre = 'Nos Recettes';

    $script = '<script src="assets/js/listeRecette.js"></script>';

    $utilisateur = ConnexionController::estConnecte();

    $estAdmin = $utilisateur && $utilisateur->estAdministrateur();

    // ob_start crée un buffer qui va récupérer tout ce qui est censé être affiché (echo + HTML) 
    ob_start();
    ?>
@@ -27,7 +32,7 @@ function afficherListeRecettes($recettes){
                <?php
                foreach($recettes as $recette){
                    if($recette->estValide()){
                        afficher($recette);
                        afficher($recette, true, $estAdmin);
                    }
                }
                ?>
Loading