From 8ef7f0be74caeadd58142c10f3be4774c8b42b42 Mon Sep 17 00:00:00 2001 From: Florent Lavelle <flavelle@neogeo.fr> Date: Thu, 26 Jan 2023 16:26:14 +0100 Subject: [PATCH] Add external auth btn (optional) --- .gitlab-ci.yml | 8 ++++++-- README.md | 5 +++++ public/config.js | 2 +- src/views/SignIn.vue | 30 ++++++++++++++++++++++++++++++ 4 files changed, 42 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 23dce79..f1a3b16 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -36,7 +36,7 @@ build_development: - echo -e " NODE_ENV=development\n DOMAIN=https://dev.pigma.neogeo.fr/fr\n - VUE_APP_DOMAIN=https://dev.pigma.neogeo.fr/\n + VUE_APP_DOMAIN=${DOMAIN}\n BASE_PATH=/\n VUE_APP_BASE_PATH=${BASE_PATH}\n VUE_APP_NEXT_DEFAULT=/\n @@ -50,7 +50,11 @@ build_development: VUE_APP_FAVICON_URL=${VUE_APP_DOMAIN}/assets/favicon.png\n VUE_APP_LOGIN_API_PATH=/fr/login/\n VUE_APP_ORGANISATION_API_PATH=/fr/organisation/\n - VUE_APP_USERGROUP_API_PATH=/fr/usergroup/\n" > .env + VUE_APP_USERGROUP_API_PATH=/fr/usergroup/\n + VUE_APP_EXTERNAL_LOGIN=true\n + VUE_APP_EXTERNAL_LOGIN_URL=http://127.0.0.1:80/oidc/authenticate\n + VUE_APP_EXTERNAL_LOGIN_LABEL=Se connecter avec mon compte FooBar\n + " > .env - npm run build artifacts: paths: diff --git a/README.md b/README.md index 0b925df..cfd96dd 100644 --- a/README.md +++ b/README.md @@ -42,6 +42,11 @@ VUE_APP_USERGROUP_API_PATH=/fr/usergroup/ # AUTH VUE_APP_LOGIN_API_USERNAME=admin VUE_APP_LOGIN_API_PASSWORD=CHANGE_ME + +# External auth +VUE_APP_EXTERNAL_LOGIN=true +VUE_APP_EXTERNAL_LOGIN_URL=http://127.0.0.1/oidc/authenticate +VUE_APP_EXTERNAL_LOGIN_LABEL=Connect with... ``` ### Compiles and hot-reloads for development diff --git a/public/config.js b/public/config.js index 48d791b..ce33b6e 100644 --- a/public/config.js +++ b/public/config.js @@ -6,7 +6,7 @@ export default { /^\/portail/, ], client: { - name: "Demo", + name: "Neogeo", email: "contact@neogeo.fr" }, forms: { diff --git a/src/views/SignIn.vue b/src/views/SignIn.vue index 7730561..c3659a6 100644 --- a/src/views/SignIn.vue +++ b/src/views/SignIn.vue @@ -4,6 +4,23 @@ <div class="sign-in-header"> <img alt="logo" :src="logoPath"/> </div> + <div + v-if="externalAuth.enabled" + class="sign-in-form" + > + <h5 class="title">{{ externalAuth.label }}</h5> + <form> + <div class="form-row"> + <b-button + variant="primary" + block + @click.prevent="submitExternalAuth" + > + {{ $t('words.login') }} + </b-button> + </div> + </form> + </div> <div class="sign-in-form"> <h5 v-if="$config.forms.signin.title" @@ -119,6 +136,10 @@ import { mapMutations, } from 'vuex'; +// const EXTERNAL_LOGIN = process.env.VUE_APP_EXTERNAL_LOGIN; +// const EXTERNAL_LOGIN_URL = process.env.VUE_APP_EXTERNAL_LOGIN_URL; +// const EXTERNAL_LOGIN_LABEL = process.env.VUE_APP_EXTERNAL_LOGIN_LABEL + const signInActions = [ 'POST_SIGNIN' ]; @@ -134,6 +155,12 @@ export default { data() { return { + externalAuth: { + enabled: process.env.VUE_APP_EXTERNAL_LOGIN, + url: process.env.VUE_APP_EXTERNAL_LOGIN_URL, + label: process.env.VUE_APP_EXTERNAL_LOGIN_LABEL + }, + showPassword: false, btnPressed: false, form: { @@ -192,6 +219,9 @@ export default { this.btnPressed = true; await this.POST_SIGNIN(); }, + submitExternalAuth() { + window.location.href = this.externalAuth.url; + } }, }; </script> -- GitLab