d8ac261b13
Signed-off-by: garionion <github@entr0py.de>
53 lines
1.1 KiB
TypeScript
53 lines
1.1 KiB
TypeScript
import { createWebHistory, createRouter, RouteRecordRaw } from "vue-router";
|
|
import Home from "../views/Home.vue";
|
|
const Settings = () => import("../views/Settings.vue");
|
|
const Login = () => import("../views/Login.vue");
|
|
const Sites = () => import("../views/Sites.vue");
|
|
const AccessPoints = () => import("../views/AccessPoints.vue");
|
|
import { isLoggedIn } from "../api";
|
|
|
|
const routes: RouteRecordRaw[] = [
|
|
{
|
|
path: "/",
|
|
name: "Home",
|
|
component: Home,
|
|
},
|
|
{
|
|
path: "/settings",
|
|
name: "Settings",
|
|
component: Settings,
|
|
},
|
|
{
|
|
path: "/sites",
|
|
name: "Sites",
|
|
component: Sites,
|
|
},
|
|
{
|
|
path: "/login",
|
|
name: "Login",
|
|
component: Login,
|
|
props: (route) => ({ logout: route.query.logout }),
|
|
},
|
|
{
|
|
path: "/aps",
|
|
name: "AccessPoints",
|
|
component: AccessPoints,
|
|
props: (route) => ({ site: Number(route.query["site-id"]).valueOf() }),
|
|
},
|
|
];
|
|
|
|
const router = createRouter({
|
|
history: createWebHistory(),
|
|
routes,
|
|
});
|
|
|
|
router.beforeEach(async (to) => {
|
|
if (to.name !== "Login") {
|
|
const canAccess = await isLoggedIn();
|
|
if (!canAccess) return "/login";
|
|
}
|
|
return true;
|
|
});
|
|
|
|
export default router;
|