From 5f569e5b9799db61add89fb92f042405092c3aa0 Mon Sep 17 00:00:00 2001 From: Fred Tempez Date: Sat, 25 Nov 2023 21:44:50 +0100 Subject: [PATCH] Fix permission --- core/core.php | 17 +++++++++++------ core/module/course/course.php | 10 ++++------ core/module/course/view/index/index.php | 8 +++++--- 3 files changed, 20 insertions(+), 15 deletions(-) diff --git a/core/core.php b/core/core.php index 4009ae8..4376077 100644 --- a/core/core.php +++ b/core/core.php @@ -941,9 +941,6 @@ class common */ public function getPermission($key1, $key2 = null) { - // User n'existe pas - // if (is_array($this->user) === false) { - // return false; // Administrateur, toutes les permissions if ($this->getUser('group') === self::GROUP_ADMIN) { return true; @@ -967,10 +964,18 @@ class common ) { return $this->getData(['profil', $this->user['group'], $this->user['profil'], $key1]); } else { - // Une permission non spécifiée dans le profil est autorisée par défaut pour le fonctionnement de $action - return true; + // Une permission non spécifiée dans le profil est autorisée selon la valeur de $actions + if (class_exists($key1)) { + $module = new $key1; + if (array_key_exists($key2, $module::$actions)) { + // var_dump($this->getUser('group')); + // var_dump($module::$actions[$key2]); + // var_dump($this->getUser('group') >= $module::$actions[$key2]); + return $this->getUser('group') >= $module::$actions[$key2]; + } + } + return false; } - } /** diff --git a/core/module/course/course.php b/core/module/course/course.php index 250b99d..9b6c2c6 100644 --- a/core/module/course/course.php +++ b/core/module/course/course.php @@ -74,6 +74,7 @@ class course extends common public function index() { + self::$courses = array(); if ( $this->getUser('id') @@ -280,11 +281,9 @@ class course extends common { $courseId = $this->getUrl(2); if ( - $this->getUser('permission', __CLASS__, __FUNCTION__) !== true || + ($this->getUser('permission', __CLASS__, __FUNCTION__) !== true // Le contenu n'existe pas - $this->getData(['course', $courseId]) === null - // Groupe insuffisant - and ($this->getUrl('group') < self::GROUP_EDITOR) + || $this->getData(['course', $courseId]) === null) ) { // Valeurs en sortie $this->addOutput([ @@ -294,7 +293,6 @@ class course extends common } else { // Active l'accueil $_SESSION['ZWII_SITE_CONTENT'] = 'home'; - // ET efface la structure if (is_dir(self::DATA_DIR . $courseId)) { $success = $this->deleteDir(self::DATA_DIR . $courseId); @@ -1031,7 +1029,7 @@ class course extends common // Valeurs en sortie $this->addOutput([ - 'redirect' => helper::baseUrl(!helper::checkRewrite()) . 'course/user/' . $courseId, + 'redirect' => helper::baseUrl() . 'course/users/' . $courseId, 'notification' => 'Création ' . basename($filename) . ' dans le dossier "Export"', 'state' => true, ]); diff --git a/core/module/course/view/index/index.php b/core/module/course/view/index/index.php index 63da667..531fcb9 100644 --- a/core/module/course/view/index/index.php +++ b/core/module/course/view/index/index.php @@ -2,15 +2,16 @@
'buttonGrey', - 'href' => helper::baseUrl() . $this->getUrl(2), - 'value' => template::ico('left') + 'href' => helper::baseUrl(), + 'value' => template::ico('home') ]); ?>
+ getUser('group') === self::GROUP_ADMIN): ?>
helper::baseUrl() . 'course/category', 'value' => template::ico('table'), - 'help' => 'Catégories de contenu' + 'help' => 'Catégories' ]); ?>
@@ -20,6 +21,7 @@ 'value' => template::ico('plus') ]); ?>
+ 'dataTables']); ?>