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:
@@ -52,6 +52,7 @@ export default async function meRoutes(server: FastifyInstance) {
|
||||
id: tenants.id,
|
||||
name: tenants.name,
|
||||
short: tenants.short,
|
||||
calendarConfig: tenants.calendarConfig,
|
||||
hasActiveLicense: tenants.hasActiveLicense,
|
||||
locked: tenants.locked,
|
||||
features: tenants.features,
|
||||
|
||||
@@ -28,7 +28,21 @@ export default async function tenantRoutes(server: FastifyInstance) {
|
||||
// -------------------------------------------------------------
|
||||
// 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) {
|
||||
return {
|
||||
message: `Hallo vom Tenant ${req.tenant?.name}`,
|
||||
|
||||
@@ -355,8 +355,24 @@ export const useAuthStore = defineStore("auth", {
|
||||
if(this.profile?.temp_config) tempStore.setStoredTempConfig(this.profile.temp_config)
|
||||
|
||||
if(me.activeTenant > 0) {
|
||||
this.activeTenant = me.activeTenant
|
||||
this.activeTenantData = me.tenants.find(i => i.id === me.activeTenant)
|
||||
const normalizedActiveTenant = String(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)
|
||||
|
||||
@@ -77,6 +77,16 @@ export const useProfileStore = defineStore("profile", () => {
|
||||
|
||||
async function fetchOwnTenant() {
|
||||
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
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user