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,
|
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,
|
||||||
|
|||||||
@@ -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}`,
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user