Keycloak config persistance implemented (to test)
This commit is contained in:
@ -1,15 +1,26 @@
|
||||
import { assert } from "tsafe/assert";
|
||||
import { getDefaultConfig, type ParsedRealmJson } from "./ParsedRealmJson";
|
||||
import type { ParsedRealmJson } from "./ParsedRealmJson";
|
||||
import { getDefaultConfig } from "./defaultConfig";
|
||||
import type { BuildContext } from "../../shared/buildContext";
|
||||
import { objectKeys } from "tsafe/objectKeys";
|
||||
|
||||
export type BuildContextLike = {
|
||||
themeNames: BuildContext["themeNames"];
|
||||
implementedThemeTypes: BuildContext["implementedThemeTypes"];
|
||||
};
|
||||
|
||||
assert<BuildContext extends BuildContextLike ? true : false>;
|
||||
|
||||
export function prepareRealmConfig(params: {
|
||||
parsedRealmJson: ParsedRealmJson;
|
||||
keycloakMajorVersionNumber: number;
|
||||
buildContext: BuildContextLike;
|
||||
}): {
|
||||
realmName: string;
|
||||
clientName: string;
|
||||
username: string;
|
||||
} {
|
||||
const { parsedRealmJson, keycloakMajorVersionNumber } = params;
|
||||
const { parsedRealmJson, keycloakMajorVersionNumber, buildContext } = params;
|
||||
|
||||
const { username } = addOrEditTestUser({
|
||||
parsedRealmJson,
|
||||
@ -23,6 +34,22 @@ export function prepareRealmConfig(params: {
|
||||
|
||||
editAccountConsoleAndSecurityAdminConsole({ parsedRealmJson });
|
||||
|
||||
enableCustomThemes({
|
||||
parsedRealmJson,
|
||||
themeName: buildContext.themeNames[0],
|
||||
implementedThemeTypes: buildContext.implementedThemeTypes
|
||||
});
|
||||
|
||||
enable_custom_events_listeners: {
|
||||
const name = "keycloakify-logging";
|
||||
|
||||
if (parsedRealmJson.eventsListeners.includes(name)) {
|
||||
break enable_custom_events_listeners;
|
||||
}
|
||||
|
||||
parsedRealmJson.eventsListeners.push(name);
|
||||
}
|
||||
|
||||
return {
|
||||
realmName: parsedRealmJson.name,
|
||||
clientName: clientId,
|
||||
@ -30,6 +57,21 @@ export function prepareRealmConfig(params: {
|
||||
};
|
||||
}
|
||||
|
||||
function enableCustomThemes(params: {
|
||||
parsedRealmJson: ParsedRealmJson;
|
||||
themeName: string;
|
||||
implementedThemeTypes: BuildContextLike["implementedThemeTypes"];
|
||||
}) {
|
||||
const { parsedRealmJson, themeName, implementedThemeTypes } = params;
|
||||
|
||||
for (const themeType of objectKeys(implementedThemeTypes)) {
|
||||
parsedRealmJson[`${themeType}Theme` as const] = implementedThemeTypes[themeType]
|
||||
.isImplemented
|
||||
? themeName
|
||||
: "";
|
||||
}
|
||||
}
|
||||
|
||||
function addOrEditTestUser(params: {
|
||||
parsedRealmJson: ParsedRealmJson;
|
||||
keycloakMajorVersionNumber: number;
|
||||
|
Reference in New Issue
Block a user