Files
memberApp/src/boot/auth.ts
2026-02-23 21:23:14 +01:00

36 lines
954 B
TypeScript

import { boot } from 'quasar/wrappers';
import { createPinia } from 'pinia';
import { useUserStore } from 'src/vueLib/login/userStore';
import { useLogin } from 'src/vueLib/login/useLogin';
import { Me, openDatabase } from 'src/vueLib/components/DatabaseCall';
const pinia = createPinia();
export default boot(async ({ app }) => {
app.use(pinia);
const userStore = useUserStore();
const login = useLogin();
const resp = await Me().catch(() =>
login.logout().catch((err) => {
console.error(err);
return;
}),
);
if (!resp) return;
await userStore
.setUser({
id: resp.data.id,
user: resp.data.username,
role: { role: resp.data.role, permissions: [] },
workspaceId: resp.data.workspaceId,
settings: resp.data.settings,
})
.catch((err) => console.error(err));
login.refresh().catch((err) => console.error(err));
await openDatabase().catch((err) => console.error(err));
});