From f82277e3c3b412d2d36f9b4fe8506d557f7b804d Mon Sep 17 00:00:00 2001 From: Janis Streib <janis.streib@kit.edu> Date: Tue, 25 Mar 2025 19:38:00 +0100 Subject: [PATCH] FIX: broken links for subgroups containing a / --- src/components/BCDRights.vue | 4 ++-- src/components/GlobalSearch.vue | 2 +- src/components/SVCAccountCard.vue | 2 +- src/views/Launchpad.vue | 2 +- src/views/org/OU.vue | 4 ++-- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/components/BCDRights.vue b/src/components/BCDRights.vue index ede61e405..0452053ae 100644 --- a/src/components/BCDRights.vue +++ b/src/components/BCDRights.vue @@ -22,7 +22,7 @@ <ul> <li v-for="grp in bcd_groups" v-bind:key="grp.group_name"> <b :title="grp.group_name in groups?groups[grp.group_name].description:''"> - <b-link :to="'/cntl/groups/'+grp.group_name">{{ grp.group_name }}</b-link> + <b-link :to="'/cntl/groups/'+encodeURIComponent(grp.group_name)">{{ grp.group_name }}</b-link> </b> <b-link class="ml-1" v-if="grp.group_name in group2mgrs && group2mgr_emails(grp.group_name).length > 0" @@ -67,7 +67,7 @@ <ul> <li v-for="grp in bcd_groups" v-bind:key="grp.group_name"> <b :title="grp.group_name in groups?groups[grp.group_name].description:''"> - <b-link :to="'/cntl/groups/'+grp.group_name">{{ grp.group_name }}</b-link> + <b-link :to="'/cntl/groups/'+encodeURIComponent(grp.group_name)">{{ grp.group_name }}</b-link> </b> <b-link class="ml-1" v-if="grp.group_name in group2mgrs && group2mgr_emails(grp.group_name).length > 0" diff --git a/src/components/GlobalSearch.vue b/src/components/GlobalSearch.vue index d0d05bbe9..3390a50f0 100644 --- a/src/components/GlobalSearch.vue +++ b/src/components/GlobalSearch.vue @@ -270,7 +270,7 @@ export default { 'nd.ip_subnet': '/dnsvs/bcds/' + result.bcd, 'nd.bcd': '/dnsvs/bcds/' + result.name, 'nd.vlan': '/dnsvs/bcds/' + result.bcd, - 'cntl.group': '/cntl/groups/' + result.name, + 'cntl.group': '/cntl/groups/' + encodeURIComponent(result.name), 'org.unit': '/org/ou/' + result.short_name, 'nd.vxlan': '/dnsvs/bcds/' + result.bcd, 'macauth.client': '/macauth/bcds/' + result.bcd_name, diff --git a/src/components/SVCAccountCard.vue b/src/components/SVCAccountCard.vue index 437fec9fa..a73e61de8 100644 --- a/src/components/SVCAccountCard.vue +++ b/src/components/SVCAccountCard.vue @@ -141,7 +141,7 @@ <b-collapse :id="account.login_name + '-groups-collapse'"> <b-table :items="own_groups" :fields="group_list_fields"> <template v-slot:cell(name)="data"> - <b-link :to="`/cntl/groups/${data.item.name}`">{{ data.item.name }}</b-link> + <b-link :to="`/cntl/groups/${encodeURIComponent(data.item.name)}`">{{ data.item.name }}</b-link> </template> <template v-slot:cell(ou_short_name)="data"> <b-link :to="`/org/ou/${data.item.ou_short_name}`">{{ data.item.ou_short_name }}</b-link> diff --git a/src/views/Launchpad.vue b/src/views/Launchpad.vue index a4bd6509c..808961d8b 100644 --- a/src/views/Launchpad.vue +++ b/src/views/Launchpad.vue @@ -66,7 +66,7 @@ export default { 'cntl.group': async () => { const res = (await GroupService.list(this.$store.state, {gpk: payload})).data[0] if (this.checkRes(res)) { - await this.$router.push('/cntl/groups/' + res[0].name) + await this.$router.push('/cntl/groups/' + encodeURIComponent(res[0].name)) } }, 'dns.fqdn': async () => { diff --git a/src/views/org/OU.vue b/src/views/org/OU.vue index f516e84e6..566eddd8f 100644 --- a/src/views/org/OU.vue +++ b/src/views/org/OU.vue @@ -205,7 +205,7 @@ <template v-slot:cell(actions)=""> </template> <template v-slot:cell(name)="data"> - <b-link :to="'/cntl/groups/'+data.item.name">{{ data.item.name }}</b-link> + <b-link :to="'/cntl/groups/'+encodeURIComponent(data.item.name)">{{ data.item.name }}</b-link> </template> </PaginatorTable> <template v-if="!is_entry && ous_by_parent && ou.short_name in ous_by_parent" @@ -216,7 +216,7 @@ <template v-slot:cell(actions)=""> </template> <template v-slot:cell(name)="data"> - <b-link :to="'/cntl/groups/'+data.item.name">{{ data.item.name }}</b-link> + <b-link :to="'/cntl/groups/'+encodeURIComponent(data.item.name)">{{ data.item.name }}</b-link> <b-badge class="ml-2" pill :to="'/org/ou/' + data.item.ou_short_name"> <netvs-icon icon="orgs"/> {{ data.item.ou_short_name }} -- GitLab