in controllers/clusterkeycloakrealm/chain/put_realm_settings.go [24:77]
func (h PutRealmSettings) ServeRequest(ctx context.Context, realm *v1alpha1.ClusterKeycloakRealm, kClient keycloak.Client) error {
log := ctrl.LoggerFrom(ctx)
log.Info("Start updating of keycloak realm settings")
if realm.Spec.RealmEventConfig != nil {
if err := kClient.SetRealmEventConfig(realm.Spec.RealmName, &adapter.RealmEventConfig{
AdminEventsDetailsEnabled: realm.Spec.RealmEventConfig.AdminEventsDetailsEnabled,
AdminEventsEnabled: realm.Spec.RealmEventConfig.AdminEventsEnabled,
EnabledEventTypes: realm.Spec.RealmEventConfig.EnabledEventTypes,
EventsEnabled: realm.Spec.RealmEventConfig.EventsEnabled,
EventsExpiration: realm.Spec.RealmEventConfig.EventsExpiration,
EventsListeners: realm.Spec.RealmEventConfig.EventsListeners,
}); err != nil {
return fmt.Errorf("failed to set realm event config: %w", err)
}
}
settings := adapter.RealmSettings{
FrontendURL: realm.Spec.FrontendURL,
DisplayHTMLName: realm.Spec.DisplayHTMLName,
DisplayName: realm.Spec.DisplayName,
}
if realm.Spec.Themes != nil {
settings.Themes = &adapter.RealmThemes{
EmailTheme: realm.Spec.Themes.EmailTheme,
AdminConsoleTheme: realm.Spec.Themes.AdminConsoleTheme,
AccountTheme: realm.Spec.Themes.AccountTheme,
LoginTheme: realm.Spec.Themes.LoginTheme,
}
}
if realm.Spec.Localization != nil {
settings.Themes.InternationalizationEnabled = realm.Spec.Localization.InternationalizationEnabled
}
if realm.Spec.BrowserSecurityHeaders != nil {
settings.BrowserSecurityHeaders = realm.Spec.BrowserSecurityHeaders
}
if len(realm.Spec.PasswordPolicies) > 0 {
settings.PasswordPolicies = h.makePasswordPolicies(realm.Spec.PasswordPolicies)
}
settings.TokenSettings = adapter.ToRealmTokenSettings(realm.Spec.TokenSettings)
if err := kClient.UpdateRealmSettings(realm.Spec.RealmName, &settings); err != nil {
return errors.Wrap(err, "unable to update realm settings")
}
log.Info("Realm settings is updating done.")
return nil
}