From 7cd72d0cbef2f2549240ed34098e58d6e5e89acb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Noack?= <noack@data-quest.de> Date: Mon, 6 Jan 2025 08:36:05 +0000 Subject: [PATCH] Resolve #5087 "Meine Veranstaltungen verlinkt noch auf seminar_main.php" Closes #5087 Merge request studip/studip!3802 --- app/controllers/course/go.php | 4 +++- app/controllers/institute/overview.php | 13 ++++++++----- resources/vue/components/MyCoursesTables.vue | 2 +- resources/vue/components/MyCoursesTiles.vue | 2 +- resources/vue/mixins/MyCoursesMixin.js | 2 +- 5 files changed, 14 insertions(+), 9 deletions(-) diff --git a/app/controllers/course/go.php b/app/controllers/course/go.php index 03ae1dfa7f6..400c44a4c84 100644 --- a/app/controllers/course/go.php +++ b/app/controllers/course/go.php @@ -50,7 +50,9 @@ class Course_GoController extends AuthenticatedController if (!is_internal_url($redirect_to)) { throw new Exception('Invalid redirection'); } - + if (str_starts_with($redirect_to, '#')) { + $redirect_to = 'dispatch.php/course/go' . $redirect_to; + } $this->redirect(URLHelper::getURL($redirect_to, ['cid' => $course_id])); return; } diff --git a/app/controllers/institute/overview.php b/app/controllers/institute/overview.php index 3713dccb0b9..db831151187 100644 --- a/app/controllers/institute/overview.php +++ b/app/controllers/institute/overview.php @@ -16,17 +16,20 @@ class Institute_OverviewController extends AuthenticatedController { protected $allow_nobody = true; - function before_filter(&$action, &$args) { - + public function __construct(\Trails\Dispatcher $dispatcher) + { + if (Request::option('auswahl')) { + Request::set('cid', Request::option('auswahl')); + } //Check if anonymous access is really allowed: $config = Config::get(); if (($config->ENABLE_FREE_ACCESS && ($config->ENABLE_FREE_ACCESS == 'courses_only'))) { $this->allow_nobody = false; } + parent::__construct($dispatcher); + } - if (Request::option('auswahl')) { - Request::set('cid', Request::option('auswahl')); - } + public function before_filter(&$action, &$args) { parent::before_filter($action, $args); diff --git a/resources/vue/components/MyCoursesTables.vue b/resources/vue/components/MyCoursesTables.vue index 0bf9423553c..e3b70ea59fb 100644 --- a/resources/vue/components/MyCoursesTables.vue +++ b/resources/vue/components/MyCoursesTables.vue @@ -56,7 +56,7 @@ {{ course.number }} </td> <td :class="{'subcourse-indented': isChild(course)}"> - <a :href="urlFor('seminar_main.php', {to: course.id})"> + <a :href="urlFor('dispatch.php/course/go', {to: course.id})"> {{ getCourseName(course, getConfig('sem_number') && responsiveDisplay) }} <span v-if="course.is_deputy">{{ $gettext('[Vertretung]') }}</span> </a> diff --git a/resources/vue/components/MyCoursesTiles.vue b/resources/vue/components/MyCoursesTiles.vue index 81e0237249e..355d24c7d67 100644 --- a/resources/vue/components/MyCoursesTiles.vue +++ b/resources/vue/components/MyCoursesTiles.vue @@ -24,7 +24,7 @@ ></studip-action-menu> </span> - <a :href="urlFor('seminar_main.php', {to: course.id})" class="tiles-grid-element-header-content" :title="getCourseName(course, getConfig('sem_number'))"> + <a :href="urlFor('dispatch.php/course/go', {to: course.id})" class="tiles-grid-element-header-content" :title="getCourseName(course, getConfig('sem_number'))"> <span :style="{backgroundImage: `url(${course.avatar})`}" class="tiles-grid-element-header-image"></span> <span class="tiled-grid-element-header-title"> {{ getCourseName(course, getConfig('sem_number')) }} diff --git a/resources/vue/mixins/MyCoursesMixin.js b/resources/vue/mixins/MyCoursesMixin.js index 6b2270742d2..fa28388e638 100644 --- a/resources/vue/mixins/MyCoursesMixin.js +++ b/resources/vue/mixins/MyCoursesMixin.js @@ -141,7 +141,7 @@ export default { result.icon.role = 'clickable'; } - result.url = this.urlFor('seminar_main.php', { + result.url = this.urlFor('dispatch.php/course/go', { to: course.id, redirect_to: result.url, }); -- GitLab