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": {