mirror of
https://origin.cursor.com/mrdevmx/panels.git
synced 2026-10-09 21:03:17 +00:00
19 lines
547 B
TypeScript
19 lines
547 B
TypeScript
export default defineNuxtRouteMiddleware(async (to) => {
|
|
if (to.path === "/login") return;
|
|
const { user, fetchMe } = useAuth();
|
|
try {
|
|
if (!user.value) {
|
|
await Promise.race([
|
|
fetchMe(),
|
|
new Promise((_, reject) => setTimeout(() => reject(new Error("timeout")), 4000)),
|
|
]);
|
|
}
|
|
} catch {
|
|
user.value = null;
|
|
}
|
|
if (!user.value) return navigateTo("/login");
|
|
if (user.value.role !== "platform_admin" || user.value.realm !== "platform") {
|
|
user.value = null;
|
|
return navigateTo("/login");
|
|
}
|
|
});
|