Skip to content

Commit

Permalink
Merge pull request #126 from ymaheshwari1/feat/multi-login-based-on-a…
Browse files Browse the repository at this point in the history
…pp-instance

Implemented: support to use different login flow for the same app's instance
  • Loading branch information
ravilodhi authored Aug 7, 2024
2 parents 473c0d7 + c4710d0 commit 1d47a36
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 6 deletions.
5 changes: 3 additions & 2 deletions src/util/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,10 @@ const showToast = async (message: string) => {
return toast.present();
}

const isMaargLogin = (handle: string) => {
const isMaargLogin = (handle: string, environment = "") => {
const appHandle = environment ? handle + environment : handle
const maargLoginApps = JSON.parse(process.env.VUE_APP_MAARG_LOGIN ? process.env.VUE_APP_MAARG_LOGIN : [])
return maargLoginApps.some((appName: string) => handle.includes(appName))
return maargLoginApps.some((appName: string) => appHandle.includes(appName))
}

export { isMaargLogin, showToast }
10 changes: 6 additions & 4 deletions src/views/Home.vue
Original file line number Diff line number Diff line change
Expand Up @@ -46,10 +46,12 @@
{{ translate("Not configured") }}
</ion-badge>
<ion-buttons class="app-links" v-else>
<ion-button color="medium" @click.stop="generateAppLink(app, devHandle)">
<!-- Disabled is added on the buttons only for the case when specific instance of the app support maarg login -->
<!-- This checks can be removed when all the app instance uses a single login flow either from ofbiz or from moqui -->
<ion-button color="medium" :disabled="authStore.isAuthenticated && isMaargLogin(app.handle, devHandle) && !authStore.getMaargOms" @click.stop="generateAppLink(app, devHandle)">
<ion-icon slot="icon-only" :icon="codeWorkingOutline" />
</ion-button>
<ion-button color="medium" @click.stop="generateAppLink(app, uatHandle)">
<ion-button color="medium" :disabled="authStore.isAuthenticated && isMaargLogin(app.handle, uatHandle) && !authStore.getMaargOms" @click.stop="generateAppLink(app, uatHandle)">
<ion-icon slot="icon-only" :icon="shieldHalfOutline" />
</ion-button>
</ion-buttons>
Expand Down Expand Up @@ -134,8 +136,8 @@ export default defineComponent({
}
},
generateAppLink(app: any, appEnvironment = '') {
const oms = isMaargLogin(app.handle) ? this.authStore.getMaargOms : this.authStore.getOMS;
window.location.href = this.scheme + app.handle + appEnvironment + this.domain + (this.authStore.isAuthenticated ? `/login?oms=${oms.startsWith('http') ? isMaargLogin(app.handle) ? oms : oms.includes('/api') ? oms : `${oms}/api/` : oms}&token=${this.authStore.token.value}&expirationTime=${this.authStore.token.expiration}${isMaargLogin(app.handle) ? '&omsRedirectionUrl=' + this.authStore.getOMS : ''}` : '')
const oms = isMaargLogin(app.handle, appEnvironment) ? this.authStore.getMaargOms : this.authStore.getOMS;
window.location.href = this.scheme + app.handle + appEnvironment + this.domain + (this.authStore.isAuthenticated ? `/login?oms=${oms.startsWith('http') ? isMaargLogin(app.handle, appEnvironment) ? oms : oms.includes('/api') ? oms : `${oms}/api/` : oms}&token=${this.authStore.token.value}&expirationTime=${this.authStore.token.expiration}${isMaargLogin(app.handle, appEnvironment) ? '&omsRedirectionUrl=' + this.authStore.getOMS : ''}` : '')
}
},
setup() {
Expand Down

0 comments on commit 1d47a36

Please sign in to comment.