From f70902111b22537e1aa86a196bbc78b8719320c3 Mon Sep 17 00:00:00 2001 From: "L. Ellenbeck" <ellenbeck@itc.rwth-aachen.de> Date: Mon, 9 Sep 2024 16:53:21 +0000 Subject: [PATCH] Fix: User query for token (coscine/issues#2975) --- src/modules/login/store.ts | 3 +++ .../user/pages/modals/MergeUserModalV2.vue | 18 ++++++++++++++++-- yarn.lock | 10 +++++----- 3 files changed, 24 insertions(+), 7 deletions(-) diff --git a/src/modules/login/store.ts b/src/modules/login/store.ts index 24fda648..e808a7ac 100644 --- a/src/modules/login/store.ts +++ b/src/modules/login/store.ts @@ -95,6 +95,9 @@ export const useLoginStore = defineStore({ } return null; }, + isCookieLogin(): boolean { + return getCookieValue("CoscineLoginExpiration") !== null; + }, }, /* -------------------------------------------------------------------------------------- diff --git a/src/modules/user/pages/modals/MergeUserModalV2.vue b/src/modules/user/pages/modals/MergeUserModalV2.vue index 258e9db1..e2e710f9 100644 --- a/src/modules/user/pages/modals/MergeUserModalV2.vue +++ b/src/modules/user/pages/modals/MergeUserModalV2.vue @@ -62,6 +62,8 @@ <script lang="ts"> import { useModal } from "bootstrap-vue-next"; +import useLoginStore from "@/modules/login/store"; +import useMainStore from "@/store/index"; export default defineComponent({ props: { @@ -76,15 +78,27 @@ export default defineComponent({ }, setup() { const mergeUserModalV2 = useModal("mergeUserModalV2"); + const loginStore = useLoginStore(); + const mainStore = useMainStore(); - return { mergeUserModalV2: mergeUserModalV2 }; + return { mergeUserModalV2: mergeUserModalV2, loginStore, mainStore }; }, methods: { async proceedWithMerge() { if (this.externalAuthId) { const url = new URL(window.location.href); url.pathname = `/coscine/api/v2/self/session/merge/${this.externalAuthId}`; - window.location.href = url.toString(); + + if (this.loginStore.isCookieLogin) { + window.location.href = url.toString(); + } else { + url.searchParams.append( + "access_token", + this.mainStore.coscine.authorization.bearer, + ); + + window.location.href = url.toString(); + } } }, }, diff --git a/yarn.lock b/yarn.lock index a6290fcc..1e8696da 100644 --- a/yarn.lock +++ b/yarn.lock @@ -496,9 +496,9 @@ __metadata: languageName: node linkType: hard -"@coscine/form-generator@npm:3.5.7-dev.39": - version: 3.5.7-dev.39 - resolution: "@coscine/form-generator@npm:3.5.7-dev.39::__archiveUrl=https%3A%2F%2Fgit.rwth-aachen.de%2Fapi%2Fv4%2Fprojects%2F35944%2Fpackages%2Fnpm%2F%40coscine%2Fform-generator%2F-%2F%40coscine%2Fform-generator-3.5.7-dev.39.tgz" +"@coscine/form-generator@npm:^4.0.5": + version: 4.0.5 + resolution: "@coscine/form-generator@npm:4.0.5::__archiveUrl=https%3A%2F%2Fgit.rwth-aachen.de%2Fapi%2Fv4%2Fprojects%2F35944%2Fpackages%2Fnpm%2F%40coscine%2Fform-generator%2F-%2F%40coscine%2Fform-generator-4.0.5.tgz" dependencies: "@vueuse/core": "npm:^10.9.0" "@zazuko/prefixes": "npm:^2.2.0" @@ -511,7 +511,7 @@ __metadata: vue-i18n: "npm:^9.10.1" vue-multiselect: "npm:^3.0.0-beta.3" vue-observe-visibility: "npm:^2.0.0-alpha.1" - checksum: 10/138ac91fa4af4f561058891079adf5f7b2991e6255fbcf28ede72fc415d4574c59f717afdd54a71a5ad85475c00066bbc940cb6088d66d3fb8d42e7fbd6ac2ad + checksum: 10/8257596e180b715e222f83c925763b64c2c51e1ed6a6fa68338f4544a95e03979dc77d4c05e20b4a37fbbf30a2aa5afb56686114880a5fb42f07f35621b1a66b languageName: node linkType: hard @@ -13687,7 +13687,7 @@ __metadata: resolution: "ui@workspace:." dependencies: "@coscine/api-client": "npm:^3.10.0" - "@coscine/form-generator": "npm:3.5.7-dev.39" + "@coscine/form-generator": "npm:^4.0.5" "@dynamic-mapper/mapper": "npm:^1.10.4" "@iconify-json/bi": "npm:^1.1.23" "@pinia/testing": "npm:^0.1.3" -- GitLab