Tibo De Peuter 2025-05-16 10:57:17 +02:00
commit f05994fa5e
Signed by: tdpeuter
GPG key ID: 38297DE43F75FFE2
70 changed files with 904 additions and 357 deletions

View file

@ -1,20 +1,21 @@
import { createRouter, createWebHistory } from "vue-router";
import SingleAssignment from "@/views/assignments/SingleAssignment.vue";
import SingleClass from "@/views/classes/SingleClass.vue";
import SingleDiscussion from "@/views/discussions/SingleDiscussion.vue";
import NotFound from "@/components/errors/NotFound.vue";
import CreateAssignment from "@/views/assignments/CreateAssignment.vue";
import CreateDiscussion from "@/views/discussions/CreateDiscussion.vue";
import CallbackPage from "@/views/CallbackPage.vue";
import UserClasses from "@/views/classes/UserClasses.vue";
import UserAssignments from "@/views/assignments/UserAssignments.vue";
import LearningPathPage from "@/views/learning-paths/LearningPathPage.vue";
import LearningPathSearchPage from "@/views/learning-paths/LearningPathSearchPage.vue";
import UserHomePage from "@/views/homepage/UserHomePage.vue";
import SingleTheme from "@/views/SingleTheme.vue";
import LearningObjectView from "@/views/learning-paths/learning-object/LearningObjectView.vue";
import authService from "@/services/auth/auth-service";
import OwnLearningContentPage from "@/views/own-learning-content/OwnLearningContentPage.vue";
import { createRouter, createWebHistory } from 'vue-router';
import SingleAssignment from '@/views/assignments/SingleAssignment.vue';
import SingleClass from '@/views/classes/SingleClass.vue';
import SingleDiscussion from '@/views/discussions/SingleDiscussion.vue';
import NotFound from '@/components/errors/NotFound.vue';
import CreateAssignment from '@/views/assignments/CreateAssignment.vue';
import CreateDiscussion from '@/views/discussions/CreateDiscussion.vue';
import CallbackPage from '@/views/CallbackPage.vue';
import UserClasses from '@/views/classes/UserClasses.vue';
import UserAssignments from '@/views/assignments/UserAssignments.vue';
import LearningPathPage from '@/views/learning-paths/LearningPathPage.vue';
import LearningPathSearchPage from '@/views/learning-paths/LearningPathSearchPage.vue';
import UserHomePage from '@/views/homepage/UserHomePage.vue';
import SingleTheme from '@/views/SingleTheme.vue';
import LearningObjectView from '@/views/learning-paths/learning-object/LearningObjectView.vue';
import authService from '@/services/auth/auth-service';
import OwnLearningContentPage from '@/views/own-learning-content/OwnLearningContentPage.vue';
import { allowRedirect, Redirect } from '@/utils/redirect.ts';
const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL),
@ -150,7 +151,11 @@ router.beforeEach(async (to, _from, next) => {
// Verify if user is logged in before accessing certain routes
if (to.meta.requiresAuth) {
if (!authService.isLoggedIn.value && !(await authService.loadUser())) {
next("/login");
const path = to.fullPath;
if (allowRedirect(path)) {
localStorage.setItem(Redirect.AFTER_LOGIN_KEY, path);
}
next(Redirect.LOGIN);
} else {
next();
}