diff --git a/src/main/java/com/knecon/fforesight/tenantusermanagement/service/RealmService.java b/src/main/java/com/knecon/fforesight/tenantusermanagement/service/RealmService.java index 441af4f..f5378d0 100644 --- a/src/main/java/com/knecon/fforesight/tenantusermanagement/service/RealmService.java +++ b/src/main/java/com/knecon/fforesight/tenantusermanagement/service/RealmService.java @@ -21,22 +21,11 @@ public class RealmService { private final TenantUserManagementProperties tenantUserManagementProperties; - public final static String MASTER_REALM = "master"; - public RealmResource realm(String tenantId) { return keycloak.getAdminClient().realm(tenantId); } - @PostConstruct - public void updateTheme() { - - log.info("Updating master realm theme: {}", tenantUserManagementProperties.getLoginTheme()); - RealmRepresentation realmRepresentation = realm(MASTER_REALM).toRepresentation(); - realmRepresentation.setLoginTheme(tenantUserManagementProperties.getLoginTheme()); - realm(MASTER_REALM).update(realmRepresentation); - } - public String getEmail(RealmResource resource) { var user = resource.users().list().stream().filter(userRepresentation -> userRepresentation.getUsername().equals("admin")).findFirst(); return user.isPresent() ? user.get().getEmail() : ""; diff --git a/src/main/java/com/knecon/fforesight/tenantusermanagement/service/TenantManagementService.java b/src/main/java/com/knecon/fforesight/tenantusermanagement/service/TenantManagementService.java index 2050ed3..8541cb4 100644 --- a/src/main/java/com/knecon/fforesight/tenantusermanagement/service/TenantManagementService.java +++ b/src/main/java/com/knecon/fforesight/tenantusermanagement/service/TenantManagementService.java @@ -63,6 +63,7 @@ public class TenantManagementService implements TenantProvider { private static final String FRONTEND_URL_PROPERTY = "frontendUrl"; private static final Set SUPPORTED_DATABASES = Set.of("postgresql"); private static final String PASSWORD = "**********"; + private static final String MASTER_REALM = "master"; private final EncryptionDecryptionService encryptionService; private final TenantRepository tenantRepository; @@ -82,6 +83,9 @@ public class TenantManagementService implements TenantProvider { @SneakyThrows public TenantResponse createTenant(TenantRequest tenantRequest) { + // For now we update the master realm theme whenever we create the tenant + updateMasterTheme(tenantUserManagementProperties.getLoginTheme()); + log.info("Tenants are: {}", tenantRepository.findAll().stream().map(TenantEntity::getTenantId).toList()); log.info("Requested to create tenant for: {}", tenantRequest.getTenantId()); @@ -564,4 +568,12 @@ public class TenantManagementService implements TenantProvider { } } + private void updateMasterTheme(String loginTheme) { + + log.info("Updating master realm theme: {}", loginTheme); + RealmRepresentation realmRepresentation = realmService.realm(MASTER_REALM).toRepresentation(); + realmRepresentation.setLoginTheme(loginTheme); + realmService.realm(MASTER_REALM).update(realmRepresentation); + } + } diff --git a/src/test/java/com/knecon/fforesight/tests/TenantsTest.java b/src/test/java/com/knecon/fforesight/tests/TenantsTest.java index 39155b7..dc732bd 100644 --- a/src/test/java/com/knecon/fforesight/tests/TenantsTest.java +++ b/src/test/java/com/knecon/fforesight/tests/TenantsTest.java @@ -56,6 +56,9 @@ public class TenantsTest extends AbstractTenantUserManagementIntegrationTest { assertThat(tenantsClient.getTenants().stream().anyMatch(t -> t.getTenantId().equals("new_tenant"))).isTrue(); + var realm = realmService.realm("master").toRepresentation(); + assertThat(realm.getLoginTheme()).isEqualTo("redaction"); + TenantContext.clear(); } diff --git a/src/test/java/com/knecon/fforesight/tests/ThemeTest.java b/src/test/java/com/knecon/fforesight/tests/ThemeTest.java deleted file mode 100644 index 6117c19..0000000 --- a/src/test/java/com/knecon/fforesight/tests/ThemeTest.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.knecon.fforesight.tests; - -import static com.knecon.fforesight.tenantusermanagement.service.RealmService.MASTER_REALM; -import static org.assertj.core.api.Assertions.assertThat; - -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; - -import com.knecon.fforesight.AbstractTenantUserManagementIntegrationTest; -import com.knecon.fforesight.tenantusermanagement.service.RealmService; - -public class ThemeTest extends AbstractTenantUserManagementIntegrationTest { - - @Autowired - private RealmService realmService; - - @Test - public void testLoginTheme() { - - var realm = realmService.realm(MASTER_REALM).toRepresentation(); - assertThat(realm.getLoginTheme()).isEqualTo("redaction"); - } -}