diff --git a/controllers/mother_controller.php b/controllers/mother_controller.php index 743606c..086177b 100644 --- a/controllers/mother_controller.php +++ b/controllers/mother_controller.php @@ -2,6 +2,10 @@ use Smarty\Smarty; + /** + * Le controller de la partie accessible uniquement par l'admin + * @author Yasser + */ class MotherCtrl { @@ -11,25 +15,19 @@ * Méthode d'affichage des pages */ protected function _display($strView, bool $boolDisplay = true){ - // Création de l'objet Smarty + $objSmarty = new Smarty(); - // Ajouter le var_dump au modificateur de smarty : vardump est le nom appelé après le | $objSmarty->registerPlugin('modifier', 'vardump', 'var_dump'); - // Désactiver la mise en cache $objSmarty->caching = false; - - // Forcer la recompilation des templates + $objSmarty->force_compile = true; - - // Vérifier si les templates ont été modifiés + $objSmarty->compile_check = true; - // Récupérer les variables foreach($this->_arrData as $key=>$value){ - //$$key = $value; $objSmarty->assign($key, $value); } - // Message de succès + $objSmarty->assign("success_message", $_SESSION['success']??''); unset($_SESSION['success']); @@ -43,14 +41,6 @@ }else{ return $objSmarty->fetch("views/".$strView.".tpl"); } - - - - // inclusion du header - /*include("views/_partial/header.php"); - include("views/".$strView.".php"); - include("views/_partial/footer.php");*/ } - } \ No newline at end of file diff --git a/controllers/project_controller.php b/controllers/project_controller.php index 08c2bcc..24825e6 100644 --- a/controllers/project_controller.php +++ b/controllers/project_controller.php @@ -14,7 +14,7 @@ /** * Le controler des Project - * @author Yasser & Laura + * @author Yasser, Laura, Besnik & Guillaume */ class ProjectCtrl extends MotherCtrl{ @@ -114,10 +114,9 @@ /** * Fonction d'affichage de la page projet - * @author Christel adapter par Guillaume */ - public function addedit_project(){ - if (!isset($_SESSION['user'])){ // Pas d'utilisateur connecté + public function addedit_project() { + if (!isset($_SESSION['user'])){ header("Location:index.php?ctrl=error&action=error_403"); exit; } @@ -126,18 +125,20 @@ $objProjectModel = new ProjectModel; $objCategoryModel = new CategoryModel; - // Dans la cas de modif if (isset($_GET['id'])){ $arrProject = $objProjectModel->findOne($_GET['id']); + if($_SESSION['user']['user_id'] != $arrProject['project_user_id']){ + header("Location:index.php?ctrl=error&action=error_403"); + exit; + } $objProject->hydrate($arrProject); // BDD $this->_arrData['arrImages'] = $objProjectModel->getImagesByProjectId($objProject->getId()); } - // Tester le formulaire $arrError = []; if (count($_POST) > 0) { - $objProject->hydrate($_POST); // Formulaire + $objProject->hydrate($_POST); if ($objProject->getTitle() == ""){ $arrError['title'] = "Le titre est obligatoire"; } @@ -363,10 +364,11 @@ $this->_display('addedit_project'); } + - /** - * Fonction d'affichage de projet - */ + /** + * Fonction d'affichage d'un projet + */ public function display() { $intId = $_GET['id'] ?? null; @@ -397,12 +399,12 @@ } } - /** - * Fonction de partage de projet - */ - public function shareProject(){ - if (count($_POST) > 0) - { + /** + * Fonction d'envoi d'email + */ + public function sendEmail(){ + if (count($_POST) > 0) { + $projectId = (int)($_POST['project_id'] ?? 0); $toEmail = trim($_POST['to_email'] ?? ''); diff --git a/views/search.tpl b/views/search.tpl index 392799d..395fee0 100644 --- a/views/search.tpl +++ b/views/search.tpl @@ -159,9 +159,21 @@

Pas de résultats

{/if} - {foreach $arrProjectToDisplay as $objProject} - {include file="views/_partial/preview.tpl"} - {/foreach} + {foreach from=$arrProjectToDisplay item=objProject} + + {assign var="isAuthor" value=(isset($smarty.session.user) && $smarty.session.user.user_id == $objProject->getUser_id())} + {assign var="isModerator" value=(isset($smarty.session.user) && $smarty.session.user.user_status == 2)} + {assign var="isDeleted" value=($objProject->getProject_deleted_at() !== null)} + {assign var="isRefused" value=($objProject->getStatus() == "refusé")} + + {if $isModerator + || ($isAuthor && !$isDeleted) + || (!$isRefused && !$isDeleted)} + + {include file="views/_partial/preview.tpl"} + {/if} + + {/foreach}