diff options
| author | Ron Lucke <lucke@elan-ev.de> | 2024-02-02 07:38:43 +0000 |
|---|---|---|
| committer | Ron Lucke <lucke@elan-ev.de> | 2024-02-02 07:38:43 +0000 |
| commit | feb28852d82475ebcd0573807e5d68481d0fe5b8 (patch) | |
| tree | 72561a794f9d3c9d8969f3dbec6791884803d7ae /app/controllers/course/courseware.php | |
| parent | 1c2d4c6adf9088c116e2d209ffe97fdfbb6d2511 (diff) | |
fix #3437
Closes #3437
Merge request studip/studip!2464
Diffstat (limited to 'app/controllers/course/courseware.php')
| -rw-r--r-- | app/controllers/course/courseware.php | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/app/controllers/course/courseware.php b/app/controllers/course/courseware.php index c1421f4..6297d50 100644 --- a/app/controllers/course/courseware.php +++ b/app/controllers/course/courseware.php @@ -64,10 +64,14 @@ class Course_CoursewareController extends CoursewareController $this->user_id = $user->id; /** @var array<mixed> $last */ $last = UserConfig::get($this->user_id)->getValue('COURSEWARE_LAST_ELEMENT'); + $lastStructuralElement = \Courseware\StructuralElement::findOneById($last); if ($unit_id === null) { - $this->redirectToFirstUnit('course', Context::getId(), $last); - + if ($lastStructuralElement->canVisit($user)) { + $this->redirectToFirstUnit('course', Context::getId(), $last); + } else { + $this->redirectToFirstUnit('course', Context::getId(), []); + } return; } @@ -75,7 +79,12 @@ class Course_CoursewareController extends CoursewareController $this->unit_id = null; $unit = Unit::find($unit_id); if (isset($unit)) { - $this->setEntryElement('course', $unit, $last, Context::getId()); + if ($lastStructuralElement->canVisit($user)) { + $this->setEntryElement('course', $unit, $last, Context::getId()); + } else { + $rootElement = [Context::getId() => $unit->structural_element->id]; + $this->setEntryElement('course', $unit, $rootElement, Context::getId()); + } } } |
