From d12b5cd76d1b2801af4f26545f99a88ea8e0a706 Mon Sep 17 00:00:00 2001 From: Dan Percic Date: Fri, 16 Jun 2023 18:29:39 +0300 Subject: [PATCH] RED-6713: change switch accounts flow --- .../tenants-menu/tenants-menu.component.html | 1 - .../tenants-menu/tenants-menu.component.ts | 20 ++++++++++++++++--- libs/common-ui | 2 +- package.json | 2 +- 4 files changed, 19 insertions(+), 6 deletions(-) diff --git a/apps/red-ui/src/app/components/tenants-menu/tenants-menu.component.html b/apps/red-ui/src/app/components/tenants-menu/tenants-menu.component.html index f7d745275..66bf2b5f3 100644 --- a/apps/red-ui/src/app/components/tenants-menu/tenants-menu.component.html +++ b/apps/red-ui/src/app/components/tenants-menu/tenants-menu.component.html @@ -14,7 +14,6 @@ - diff --git a/apps/red-ui/src/app/components/tenants-menu/tenants-menu.component.ts b/apps/red-ui/src/app/components/tenants-menu/tenants-menu.component.ts index dce7ac47b..c2cd0fc77 100644 --- a/apps/red-ui/src/app/components/tenants-menu/tenants-menu.component.ts +++ b/apps/red-ui/src/app/components/tenants-menu/tenants-menu.component.ts @@ -1,7 +1,8 @@ import { Component, inject } from '@angular/core'; -import { BASE_HREF, getCurrentUser, IStoredTenant, TenantsService } from '@iqser/common-ui'; +import { BASE_HREF, getConfig, getCurrentUser, IStoredTenant, KeycloakStatusService, TenantsService } from '@iqser/common-ui'; import { User } from '@red/domain'; import { KeyValue } from '@angular/common'; +import { KeycloakService } from 'keycloak-angular'; @Component({ selector: 'app-tenants-menu', @@ -12,7 +13,10 @@ export class TenantsMenuComponent { readonly tenantsService = inject(TenantsService); readonly storedTenants: Map; readonly #baseHref = inject(BASE_HREF); + readonly #keycloakService = inject(KeycloakService); + readonly #keycloakStatusService = inject(KeycloakStatusService); readonly #currentUser = getCurrentUser(); + readonly #config = getConfig(); constructor() { this.storedTenants = this.#getStoredTenants(); @@ -22,11 +26,21 @@ export class TenantsMenuComponent { return item.key; } - selectTenant(tenantId?: string, email?: string) { - let tenantUrl = tenantId ? '/' + tenantId + '/main' : '/'; + async selectTenant(tenantId?: string, email?: string) { + let tenantUrl = tenantId ? '/' + tenantId : '/'; if (email) { tenantUrl += '?username=' + email; } + + if (tenantId === this.tenantsService.activeTenantId) { + const url = this.#keycloakService.getKeycloakInstance().createLoginUrl({ + redirectUri: this.#keycloakStatusService.createLoginUrl(), + idpHint: this.#config.OAUTH_IDP_HINT, + loginHint: email ?? undefined, + }); + return this.#keycloakService.logout(url); + } + window.open(window.location.origin + this.#baseHref + tenantUrl, '_blank'); } diff --git a/libs/common-ui b/libs/common-ui index 1522d08a3..39b4ff1f9 160000 --- a/libs/common-ui +++ b/libs/common-ui @@ -1 +1 @@ -Subproject commit 1522d08a32288e82f2100796e60502c8127850c0 +Subproject commit 39b4ff1f97c06fed2e0752904bae1ab4f241fb3d diff --git a/package.json b/package.json index 9cc48cb08..8fa5c109d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "redaction", - "version": "4.102.0", + "version": "4.125.0", "private": true, "license": "MIT", "scripts": {