diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 23dce79333d196eef2878c1fbe4fede64d96f3ac..f1a3b1689f167e1957a3a99242727024c1448737 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 0b925df442083dc2341f655db775b48287fb3992..cfd96dd841ffc01254d6e55008675b4cef213043 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 48d791bea0e99c4c137312b86735011827de78a1..ce33b6e32bc5d63bc50427237bb9c9c8efa1899b 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 7730561dbd73964fec9a8382c0fd3f78365f2c22..c3659a6406eadf0a944e74fd5c1366522d4c9e96 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>