DM-406 - update master realm theme on tenant creation
This commit is contained in:
parent
3b29517363
commit
fc025ae440
@ -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() : "";
|
||||
|
||||
@ -63,6 +63,7 @@ public class TenantManagementService implements TenantProvider {
|
||||
private static final String FRONTEND_URL_PROPERTY = "frontendUrl";
|
||||
private static final Set<String> 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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -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();
|
||||
|
||||
}
|
||||
|
||||
@ -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");
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user