Persist settings in CA, expose /admin/vpn and /internal/vpn, and route Telegram (and optional web/nlp) traffic through mihomo SOCKS when enabled. Co-authored-by: Cursor <cursoragent@cursor.com>
86 lines
2.2 KiB
TypeScript
86 lines
2.2 KiB
TypeScript
import { createRouter, createWebHistory } from "vue-router";
|
|
|
|
import { getToken } from "../auth";
|
|
import AppLayout from "../layouts/AppLayout.vue";
|
|
import AnalyticsView from "../views/AnalyticsView.vue";
|
|
import ChannelsView from "../views/ChannelsView.vue";
|
|
import ConsumersView from "../views/ConsumersView.vue";
|
|
import EventsView from "../views/EventsView.vue";
|
|
import LoginView from "../views/LoginView.vue";
|
|
import MapViewPage from "../views/MapViewPage.vue";
|
|
import ParserProfilesView from "../views/ParserProfilesView.vue";
|
|
import ParsersView from "../views/ParsersView.vue";
|
|
import VpnView from "../views/VpnView.vue";
|
|
|
|
const router = createRouter({
|
|
history: createWebHistory(),
|
|
routes: [
|
|
{
|
|
path: "/login",
|
|
name: "login",
|
|
component: LoginView,
|
|
meta: { public: true },
|
|
},
|
|
{
|
|
path: "/",
|
|
component: AppLayout,
|
|
children: [
|
|
{ path: "", name: "map", component: MapViewPage, meta: { public: true } },
|
|
{
|
|
path: "channels",
|
|
name: "channels",
|
|
component: ChannelsView,
|
|
meta: { requiresAuth: true },
|
|
},
|
|
{
|
|
path: "parser-profiles",
|
|
name: "parser-profiles",
|
|
component: ParserProfilesView,
|
|
meta: { requiresAuth: true },
|
|
},
|
|
{
|
|
path: "parsers",
|
|
name: "parsers",
|
|
component: ParsersView,
|
|
meta: { requiresAuth: true },
|
|
},
|
|
{
|
|
path: "vpn",
|
|
name: "vpn",
|
|
component: VpnView,
|
|
meta: { requiresAuth: true },
|
|
},
|
|
{
|
|
path: "events",
|
|
name: "events",
|
|
component: EventsView,
|
|
meta: { requiresAuth: true },
|
|
},
|
|
{
|
|
path: "analytics",
|
|
name: "analytics",
|
|
component: AnalyticsView,
|
|
meta: { requiresAuth: true },
|
|
},
|
|
{
|
|
path: "consumers",
|
|
name: "consumers",
|
|
component: ConsumersView,
|
|
meta: { requiresAuth: true },
|
|
},
|
|
],
|
|
},
|
|
],
|
|
});
|
|
|
|
router.beforeEach((to) => {
|
|
if (!to.meta.requiresAuth) return true;
|
|
if (getToken()) return true;
|
|
return {
|
|
name: "login",
|
|
query: { next: to.fullPath },
|
|
};
|
|
});
|
|
|
|
export default router;
|