From 06afdf4349fcfd1391ec462fd15286cf51485e82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrian=20Z=C3=BCrcher?= Date: Sat, 8 Nov 2025 12:09:56 +0100 Subject: [PATCH] add feature to set user defined expiration on every user close #4 --- backend/go.mod | 2 +- backend/go.sum | 4 +-- src/assets/lang/de-CH.yaml | 2 ++ src/assets/lang/de-DE.yaml | 2 ++ src/assets/lang/en-US.yaml | 2 ++ src/boot/axios.ts | 15 ++++++++ src/components/AddToEvent.vue | 10 +++++- src/components/EditOneDialog.vue | 35 +++++++++++++++--- src/components/UserEditAllDialog.vue | 7 ++-- src/vueLib/models/users.ts | 2 +- src/vueLib/tables/members/MembersTable.vue | 10 +++--- src/vueLib/tables/users/UserTable.ts | 8 +++++ src/vueLib/tables/users/UserTable.vue | 41 +++++++++++++++------- 13 files changed, 110 insertions(+), 30 deletions(-) diff --git a/backend/go.mod b/backend/go.mod index bbb564b..99fdf8f 100644 --- a/backend/go.mod +++ b/backend/go.mod @@ -3,7 +3,7 @@ module backend go 1.24.5 require ( - gitea.tecamino.com/paadi/access-handler v1.0.15 + gitea.tecamino.com/paadi/access-handler v1.0.19 gitea.tecamino.com/paadi/memberDB v1.0.21 gitea.tecamino.com/paadi/tecamino-dbm v0.1.1 gitea.tecamino.com/paadi/tecamino-logger v0.2.1 diff --git a/backend/go.sum b/backend/go.sum index c8f1d55..1cf0f8b 100644 --- a/backend/go.sum +++ b/backend/go.sum @@ -1,5 +1,5 @@ -gitea.tecamino.com/paadi/access-handler v1.0.15 h1:izXWf64fsyPwnqVnL5MO4oRzAtZ1XPvbgxfOt/np1dM= -gitea.tecamino.com/paadi/access-handler v1.0.15/go.mod h1:wKsB5/Rvaj580gdg3+GbUf5V/0N00XN6cID+C/8135M= +gitea.tecamino.com/paadi/access-handler v1.0.19 h1:L51Qg5RNjdIGeQsHwGUTV+ADRpUqPt3qdnu7A7UQbsw= +gitea.tecamino.com/paadi/access-handler v1.0.19/go.mod h1:wKsB5/Rvaj580gdg3+GbUf5V/0N00XN6cID+C/8135M= gitea.tecamino.com/paadi/dbHandler v1.0.8 h1:ZWSBM/KFtLwTv2cBqwK1mOxWAxAfL0BcWEC3kJ9JALU= gitea.tecamino.com/paadi/dbHandler v1.0.8/go.mod h1:y/xn/POJg1DO++67uKvnO23lJQgh+XFQq7HZCS9Getw= gitea.tecamino.com/paadi/memberDB v1.0.21 h1:kGQe5fUOc50oQj8caWcjnmmxJaSPuQEjeSG5qDT9Iz4= diff --git a/src/assets/lang/de-CH.yaml b/src/assets/lang/de-CH.yaml index caefe9b..1595442 100644 --- a/src/assets/lang/de-CH.yaml +++ b/src/assets/lang/de-CH.yaml @@ -111,3 +111,5 @@ responsibleAdded: Veratwortläche hinzuegfüegt responsiblesAdded: Veratwortläche hinzuegfüegt deleteResponsible: Veratwortläche entfernt deleteResponsibles: Veratwortläche entfernt +expiration: Ablauf +never: Nie diff --git a/src/assets/lang/de-DE.yaml b/src/assets/lang/de-DE.yaml index ae40d49..b2df1bc 100644 --- a/src/assets/lang/de-DE.yaml +++ b/src/assets/lang/de-DE.yaml @@ -111,3 +111,5 @@ responsibleAdded: Veratwortläche hinzuegfüegt responsiblesAdded: Verantwortliche hinzuegfüegt deleteResponsible: Verantwortliche entfernt deleteResponsibles: Verantwortliche entfernt +expiration: Ablauf +never: Nie diff --git a/src/assets/lang/en-US.yaml b/src/assets/lang/en-US.yaml index b653107..7f482e9 100644 --- a/src/assets/lang/en-US.yaml +++ b/src/assets/lang/en-US.yaml @@ -111,3 +111,5 @@ responsibleAdded: Responsible hinzuegfüegt responsiblesAdded: Responsibles hinzuegfüegt deleteResponsible: Responsible deleted deleteResponsibles: Responsibles deleted +expiration: Expiration +never: Never diff --git a/src/boot/axios.ts b/src/boot/axios.ts index ed0db55..8297383 100644 --- a/src/boot/axios.ts +++ b/src/boot/axios.ts @@ -55,6 +55,21 @@ appApi.interceptors.response.use( // Handle unauthorized responses if (error.response?.status === 401 && !originalRequest._retry) { + const data = error.response?.data; + const serverMessage = + typeof data === 'object' && data !== null && 'message' in data + ? (data as { message: string }).message + : undefined; + + if (['no refresh token', 'is expired'].some((msg) => serverMessage?.includes(msg))) { + console.warn('[Axios] No refresh token — logging out'); + try { + await logout(); + } catch (logoutErr) { + console.error('[Axios] Logout failed:', logoutErr); + } + throw new Error('Session expired: no refresh token'); + } if (isRefreshing) { // Wait until refresh completes return new Promise((resolve, reject) => { diff --git a/src/components/AddToEvent.vue b/src/components/AddToEvent.vue index 24c316b..3d64408 100644 --- a/src/components/AddToEvent.vue +++ b/src/components/AddToEvent.vue @@ -18,7 +18,15 @@ {{ localTitle }} - +