From cdf7533fdcb3c56ef8978514e546cc8e3a94617d Mon Sep 17 00:00:00 2001 From: Thomas Citharel <tcit@tcit.fr> Date: Thu, 29 Oct 2020 10:24:39 +0100 Subject: [PATCH] Fix login provider custom name not showing up on login page Signed-off-by: Thomas Citharel <tcit@tcit.fr> --- js/src/components/User/AuthProvider.vue | 8 ++++++-- js/src/types/config.model.ts | 10 +++++----- js/src/views/User/Login.vue | 7 +++---- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/js/src/components/User/AuthProvider.vue b/js/src/components/User/AuthProvider.vue index 79e48ef6b..eef213d76 100644 --- a/js/src/components/User/AuthProvider.vue +++ b/js/src/components/User/AuthProvider.vue @@ -1,13 +1,13 @@ <template> <a class="button is-light" - v-if="Object.keys(SELECTED_PROVIDERS).includes(oauthProvider.id)" + v-if="isProviderSelected && oauthProvider.label === null" :href="`/auth/${oauthProvider.id}`" > <b-icon :icon="oauthProvider.id" /> <span>{{ SELECTED_PROVIDERS[oauthProvider.id] }}</span></a > - <a class="button is-light" :href="`/auth/${oauthProvider.id}`" v-else> + <a class="button is-light" :href="`/auth/${oauthProvider.id}`" v-else-if="isProviderSelected"> <b-icon icon="lock" /> <span>{{ oauthProvider.label }}</span> </a> @@ -22,5 +22,9 @@ export default class AuthProvider extends Vue { @Prop({ required: true, type: Object }) oauthProvider!: IOAuthProvider; SELECTED_PROVIDERS = SELECTED_PROVIDERS; + + get isProviderSelected(): boolean { + return Object.keys(SELECTED_PROVIDERS).includes(this.oauthProvider.id); + } } </script> diff --git a/js/src/types/config.model.ts b/js/src/types/config.model.ts index bfa7bacea..3c314b387 100644 --- a/js/src/types/config.model.ts +++ b/js/src/types/config.model.ts @@ -1,6 +1,11 @@ import { InstanceTermsType, InstancePrivacyType } from "./admin.model"; import { IProvider } from "./resource"; +export interface IOAuthProvider { + id: string; + label: string; +} + export interface IConfig { name: string; description: string; @@ -82,8 +87,3 @@ export interface IConfig { oauthProviders: IOAuthProvider[]; }; } - -export interface IOAuthProvider { - id: string; - label: string; -} diff --git a/js/src/views/User/Login.vue b/js/src/views/User/Login.vue index adc44955c..4203607f3 100644 --- a/js/src/views/User/Login.vue +++ b/js/src/views/User/Login.vue @@ -209,7 +209,7 @@ export default class Login extends Vue { await initializeCurrentActor(this.$apollo.provider.defaultClient); } catch (err) { if (err instanceof NoIdentitiesException) { - return this.$router.push({ + this.$router.push({ name: RouteName.REGISTER_PROFILE, params: { email: this.currentUser.email, @@ -220,17 +220,16 @@ export default class Login extends Vue { } if (this.redirect) { - return this.$router.push(this.redirect); + this.$router.push(this.redirect); } window.localStorage.setItem("welcome-back", "yes"); - return this.$router.push({ name: RouteName.HOME }); + this.$router.push({ name: RouteName.HOME }); } catch (err) { this.submitted = false; console.error(err); err.graphQLErrors.forEach(({ message }: { message: string }) => { this.errors.push(message); }); - return undefined; } } }