Merge branch 'beta' into 'main'

Beta

See merge request fedeo/software!32
This commit is contained in:
2025-11-09 19:31:52 +00:00
3 changed files with 55 additions and 45 deletions

View File

@@ -3,26 +3,4 @@ version: "3"
services:
web:
image: reg.federspiel.software/fedeo/software:beta
restart: always
# networks:
# - traefik
environment:
NUXT_PUBLIC_API_BASE: "https://backend.fedeo.io"
# labels:
# - "traefik.enable=true"
# - "traefik.docker.network=traefik"
# - "traefik.port=3000"
# # Middlewares
# - "traefik.http.middlewares.spaces-frontend-redirect-web-secure.redirectscheme.scheme=https"
# # Web Entrypoint
# - "traefik.http.routers.spaces-frontend.middlewares=spaces-frontend-redirect-web-secure"
# - "traefik.http.routers.spaces-frontend.rule=Host(`app.spaces.software`)"
# - "traefik.http.routers.spaces-frontend.entrypoints=web"
# # Web Secure Entrypoint
# - "traefik.http.routers.spaces-frontend-secure.rule=Host(`app.spaces.software`)"
# - "traefik.http.routers.spaces-frontend-secure.entrypoints=web-secured" #
# - "traefik.http.routers.spaces-frontend-secure.tls.certresolver=mytlschallenge"
#networks:
# traefik:
# external: true
restart: always

View File

@@ -1,4 +1,9 @@
export default defineNuxtPlugin(async () => {
const auth = useAuthStore()
await auth.init()
console.log("Auth init")
await auth.initStore()
})

View File

@@ -11,41 +11,72 @@ export const useAuthStore = defineStore("auth", {
activeTenant: null as any,
activeTenantData: null as any,
loading: true as boolean,
notLoggedIn: true,
}),
actions: {
async init(token) {
async persist(token) {
if(useCapacitor().getIsNative()) {
console.log("On Native")
await Preferences.set({
key:"token",
value: token,
})
useCookie("token").value = token // persistieren
} else {
console.log("On Web")
useCookie("token").value = token // persistieren
}
},
async initStore() {
console.log("Auth initStore")
await this.fetchMe()
const tempStore = useTempStore()
if(this.profile.temp_config) tempStore.setStoredTempConfig(this.profile.temp_config)
if(this.activeTenant > 0) {
this.loading = false
if(useCapacitor().getIsNative()) {
navigateTo("/mobile")
} else {
navigateTo("/")
}
}
},
async init(token=null) {
console.log("Auth init")
await this.fetchMe(token)
const tempStore = useTempStore()
if(this.profile.temp_config) tempStore.setStoredTempConfig(this.profile.temp_config)
if(useCapacitor().getIsNative()) {
navigateTo("/mobile")
} else {
navigateTo("/")
if(this.activeTenant > 0) {
this.loading = false
if(useCapacitor().getIsNative()) {
navigateTo("/mobile")
} else {
navigateTo("/")
}
}
},
async login(email: string, password: string) {
console.log("Auth login")
const { token } = await useNuxtApp().$api("/auth/login", {
method: "POST",
body: { email, password }
})
if(useCapacitor().getIsNative()) {
await Preferences.set({
key:"token",
value: token,
})
} else {
useCookie("token").value = token // persistieren
}
console.log(token)
await this.fetchMe(token)
},
async logout() {
console.log("Auth logout")
try {
await useNuxtApp().$api("/auth/logout", { method: "POST" })
} catch (e) {
@@ -67,6 +98,7 @@ export const useAuthStore = defineStore("auth", {
},
async fetchMe(jwt= null) {
console.log("Auth fetchMe")
try {
const me = await useNuxtApp().$api("/api/me", {
headers: { Authorization: `Bearer ${jwt}`,
@@ -88,7 +120,6 @@ export const useAuthStore = defineStore("auth", {
if(me.activeTenant > 0) {
this.activeTenant = me.activeTenant
this.activeTenantData = me.tenants.find(i => i.id === me.activeTenant)
this.loading = false
} else {
@@ -101,6 +132,7 @@ export const useAuthStore = defineStore("auth", {
},
async switchTenant(tenant_id: string) {
console.log("Auth switchTenant")
this.loading = true
const res = await useNuxtApp().$api("/api/tenant/switch", {
method: "POST",
@@ -120,11 +152,6 @@ export const useAuthStore = defineStore("auth", {
}
await this.init(token)
if(useCapacitor().getIsNative()) {
navigateTo("/mobile")
} else {
navigateTo("/")
}
},
hasPermission(key: string) {