diff --git a/app/controllers/course/go.php b/app/controllers/course/go.php index 03ae1dfa7f649de5e7800032acc5f87af81dcefc..400c44a4c84e34ebb7df72e3241fdf280bf15bad 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 3713dccb0b9770edfca73af993880729e702e46e..db83115118764d1e2748ec6ef105b89172565659 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 0bf9423553c7a132acea5aa52ac4ee80aab1d8fb..e3b70ea59fbf5e35ab5d48629fe2852eef5aa125 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 81e0237249e8d7703fe84c40139e50e096dcec22..355d24c7d672d180dec9a46f16cd6984bdac633c 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 6b2270742d2e26aef7dc52abe4de431b45785b12..fa28388e638c1d1ca2824daa5ce3b5fde33e36ab 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, });