diff --git a/core/class/router.class.php b/core/class/router.class.php index a94851e..d8e1609 100644 --- a/core/class/router.class.php +++ b/core/class/router.class.php @@ -474,6 +474,7 @@ class core extends common in_array($this->getUrl(0), array_keys($this->getData(['page']))) ) { $this->setData(['enrolment', self::$siteContent, $this->getUser('id'), 'lastPageId', $this->getUrl(0)]); + $this->setData(['enrolment', self::$siteContent, $this->getUser('id'), 'lastDateVisited', time()]); } // Journalisation diff --git a/core/core.php b/core/core.php index 8f2cb02..c974ab0 100644 --- a/core/core.php +++ b/core/core.php @@ -50,7 +50,7 @@ class common const ACCESS_TIMER = 1800; // Numéro de version - const ZWII_VERSION = '1.0.06'; + const ZWII_VERSION = '1.0.07'; // URL autoupdate const ZWII_UPDATE_URL = 'https://forge.chapril.org/ZwiiCMS-Team/update/raw/branch/master/lms/'; @@ -447,6 +447,7 @@ class common // Mise à jour des données core include('core/include/update.inc.php'); + } diff --git a/core/module/course/course.php b/core/module/course/course.php index 33a422b..10e5fdf 100644 --- a/core/module/course/course.php +++ b/core/module/course/course.php @@ -306,31 +306,35 @@ class course extends common public function swap() { $courseId = $this->getUrl(2); - $userId = $this->getuser('id'); + $userId = $this->getUser('id'); $message = ''; $redirect = helper::baseUrl(); $state = true; if ( // Sortir du cours et afficher l'accueil - $courseId === 'home' + $courseId === 'home' || + // Un admin ou l'auteur du cours demande l'accès + ( $userId && + $this->getUser('group') === self::GROUP_ADMIN || $this->getUser('id') === $this->getData(['user', $courseId, 'author'])) ) { $_SESSION['ZWII_SITE_CONTENT'] = $courseId; } // l'étudiant est inscrit dans le cours ET le cours est ouvert // ou un admin est connecté ou le prof du cours elseif ( - $this->courseIsUserEnroled($courseId) + $userId + && $this->courseIsUserEnroled($courseId) && $this->courseIsAvailable($courseId) ) { $_SESSION['ZWII_SITE_CONTENT'] = $courseId; $message = sprintf(helper::translate('Bienvenue dans le cours %s'), $this->getData(['course', $courseId, 'shortTitle'])); // Récupérer la dernière page visitée par cet utilisateur si elle existe - if ($this->getData(['enrolment', $courseId, $userId, 'lastPageId'])) { - $redirect .= $this->getData(['enrolment', $courseId, $userId, 'lastPageId']); - } else { + if (empty($this->getData(['enrolment', $courseId, $userId, 'lastPageId']))) { // Sinon la page d'accueil par défaut du module - $redirect .= $this->getData(['course', $courseId, 'homePageId']); + $redirect = $redirect . $this->getData(['course', $courseId, 'homePageId']); + } else { + $redirect = $redirect . $this->getData(['enrolment', $courseId, $userId, 'lastPageId']); } } // Le cours est fermé @@ -360,7 +364,7 @@ class course extends common case self::COURSE_ENROLMENT_SELF_KEY: //L'étudiant dispsoe d'un compte if ($this->getUser('id')) { - $redirect .= 'course/enrol/' . $courseId; + $redirect = $redirect . 'course/enrol/' . $courseId; $message = helper::translate('Veuillez vous inscrire'); $state = true; } else { @@ -510,13 +514,6 @@ class course extends common if ($courseId === 'home') { return true; } - // Si un utilisateur connecté est admin aou auteur, c'est autorisé - if ( - $this->getUser('password') === $this->getInput('ZWII_USER_PASSWORD') && - $this->getUser('group') === self::GROUP_ADMIN || $this->getUser('id') === $this->getData(['group', $courseId, 'author']) - ) { - return true; - } // Retourne le statut du cours dans les autres cas $access = $this->getData(['course', $courseId, 'access']); switch ($access) {