Initial certificate system
This commit is contained in:
42
frontend/src/router/index.ts
Normal file
42
frontend/src/router/index.ts
Normal file
@@ -0,0 +1,42 @@
|
||||
import { createRouter, createWebHistory } from "vue-router";
|
||||
|
||||
import AdminCertificates from "../views/AdminCertificates.vue";
|
||||
import AdminHome from "../views/AdminHome.vue";
|
||||
import AdminImports from "../views/AdminImports.vue";
|
||||
import AdminLogin from "../views/AdminLogin.vue";
|
||||
import AdminLogs from "../views/AdminLogs.vue";
|
||||
import AdminLearners from "../views/AdminLearners.vue";
|
||||
import AdminProjects from "../views/AdminProjects.vue";
|
||||
import AdminShell from "../views/AdminShell.vue";
|
||||
import CertificateQuery from "../views/CertificateQuery.vue";
|
||||
import CertificateView from "../views/CertificateView.vue";
|
||||
import VerifyView from "../views/VerifyView.vue";
|
||||
|
||||
export const router = createRouter({
|
||||
history: createWebHistory(),
|
||||
routes: [
|
||||
{ path: "/", redirect: "/query" },
|
||||
{ path: "/admin/login", component: AdminLogin },
|
||||
{
|
||||
path: "/admin",
|
||||
component: AdminShell,
|
||||
children: [
|
||||
{ path: "", component: AdminHome },
|
||||
{ path: "projects", component: AdminProjects },
|
||||
{ path: "learners", component: AdminLearners },
|
||||
{ path: "certificates", component: AdminCertificates },
|
||||
{ path: "imports", component: AdminImports },
|
||||
{ path: "logs", component: AdminLogs }
|
||||
]
|
||||
},
|
||||
{ path: "/query", component: CertificateQuery },
|
||||
{ path: "/cert/:token", component: CertificateView },
|
||||
{ path: "/verify/:token", component: VerifyView }
|
||||
]
|
||||
});
|
||||
|
||||
router.beforeEach((to) => {
|
||||
if (to.path.startsWith("/admin") && to.path !== "/admin/login" && !localStorage.getItem("admin_token")) {
|
||||
return "/admin/login";
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user