Tenantdaten vollständig laden

Lädt den aktiven Tenant über die Tenant-Route nach und gibt calendarConfig in der Me-Antwort mit zurück.
This commit is contained in:
2026-06-03 09:27:08 +02:00
parent 42d2d7dc0e
commit 47a9af26fe
4 changed files with 44 additions and 3 deletions

View File

@@ -52,6 +52,7 @@ export default async function meRoutes(server: FastifyInstance) {
id: tenants.id, id: tenants.id,
name: tenants.name, name: tenants.name,
short: tenants.short, short: tenants.short,
calendarConfig: tenants.calendarConfig,
hasActiveLicense: tenants.hasActiveLicense, hasActiveLicense: tenants.hasActiveLicense,
locked: tenants.locked, locked: tenants.locked,
features: tenants.features, features: tenants.features,

View File

@@ -28,7 +28,21 @@ export default async function tenantRoutes(server: FastifyInstance) {
// ------------------------------------------------------------- // -------------------------------------------------------------
// GET CURRENT TENANT // GET CURRENT TENANT
// ------------------------------------------------------------- // -------------------------------------------------------------
server.get("/tenant", async (req) => { server.get("/tenant", async (req, reply) => {
if (req.user?.tenant_id) {
const tenantRows = await server.db
.select()
.from(tenants)
.where(eq(tenants.id, Number(req.user.tenant_id)))
.limit(1)
if (!tenantRows.length) {
return reply.code(404).send({ error: "Tenant not found" })
}
return tenantRows[0]
}
if (req.tenant) { if (req.tenant) {
return { return {
message: `Hallo vom Tenant ${req.tenant?.name}`, message: `Hallo vom Tenant ${req.tenant?.name}`,

View File

@@ -355,8 +355,24 @@ export const useAuthStore = defineStore("auth", {
if(this.profile?.temp_config) tempStore.setStoredTempConfig(this.profile.temp_config) if(this.profile?.temp_config) tempStore.setStoredTempConfig(this.profile.temp_config)
if(me.activeTenant > 0) { if(me.activeTenant > 0) {
this.activeTenant = me.activeTenant const normalizedActiveTenant = String(me.activeTenant)
this.activeTenantData = me.tenants.find(i => i.id === me.activeTenant) this.activeTenant = normalizedActiveTenant
this.activeTenantData = me.tenants.find(i => String(i.id) === normalizedActiveTenant) || null
try {
const tenant = await useNuxtApp().$api("/api/tenant", {
headers: {
Authorization: `Bearer ${tokenToUse}`,
context: { jwt: tokenToUse }
}
})
if (tenant?.id) {
this.activeTenantData = tenant
}
} catch (tenantError) {
console.error("fetch active tenant failed", tenantError)
}
} }
this.scheduleSessionTimers(tokenToUse) this.scheduleSessionTimers(tokenToUse)

View File

@@ -77,6 +77,16 @@ export const useProfileStore = defineStore("profile", () => {
async function fetchOwnTenant() { async function fetchOwnTenant() {
syncFromAuth() syncFromAuth()
try {
const tenant = await useNuxtApp().$api("/api/tenant")
if (tenant) {
ownTenant.value = tenant
auth.activeTenantData = tenant
return
}
} catch (e) {
}
ownTenant.value = auth.activeTenantData || ownTenant.value ownTenant.value = auth.activeTenantData || ownTenant.value
} }