diff --git a/frontend/src/pages/account/Settings.vue b/frontend/src/pages/account/Settings.vue index 568d7a843b..386db4942f 100644 --- a/frontend/src/pages/account/Settings.vue +++ b/frontend/src/pages/account/Settings.vue @@ -306,6 +306,7 @@ export default { This action cannot be undone.`, confirmLabel: 'Delete' }, async () => { + await useAccountAuthStore().disconnectSubscribers() userApi.deleteUser() .then(() => { if (this.settings['user:offboarding-required']) { diff --git a/frontend/src/stores/account-auth.js b/frontend/src/stores/account-auth.js index ae931e51a8..90e6e7dec2 100644 --- a/frontend/src/stores/account-auth.js +++ b/frontend/src/stores/account-auth.js @@ -62,6 +62,12 @@ export const useAccountAuthStore = defineStore('account-auth', { setRedirectUrl (url) { this.redirectUrlAfterLogin = url }, + async disconnectSubscribers () { + const subscribers = getAppOrchestrator().$subscribers + await Promise.all( + Object.values(subscribers).map(subscriber => subscriber?.disconnect().catch(() => {})) + ) + }, async checkIfAuthenticated () { const user = await userApi.getUser() this.user = user @@ -206,11 +212,7 @@ export const useAccountAuthStore = defineStore('account-auth', { if (useAccountSettingsStore().settings['platform:sso:only']) { logoutURL = useAccountSettingsStore().settings['platform:sso:only:logoutURL'] || '/' } - const subscribers = getAppOrchestrator().$subscribers - const disconnect = Promise.all( - Object.values(subscribers).map(subscriber => subscriber?.disconnect().catch(() => {})) - ) - return disconnect + return this.disconnectSubscribers() .then(() => userApi.logout()) .then(() => this.clearStores()) .catch(_ => {})