All Downloads are FREE. Search and download functionalities are using the official Maven repository.

theme.keycloak.v2.admin.resources.assets.RealmSettingsSection-bfad9929.js.map Maven / Gradle / Ivy

There is a newer version: 25.0.1
Show newest version
{"version":3,"file":"RealmSettingsSection-bfad9929.js","sources":["../../../../node_modules/.pnpm/[email protected]/node_modules/lodash-es/uniqWith.js","../../../../node_modules/.pnpm/@[email protected][email protected][email protected]/node_modules/@patternfly/react-table/dist/esm/components/Table/EditableTextCell.js","../../src/utils/useCurrentUser.ts","../../src/realm-settings/EmailTab.tsx","../../src/realm-settings/GeneralTab.tsx","../../src/realm-settings/AddMessageBundleModal.tsx","../../src/realm-settings/LocalizationTab.tsx","../../src/realm-settings/LoginTab.tsx","../../src/realm-settings/PartialExport.tsx","../../src/realm-settings/PartialImport.tsx","../../src/realm-settings/PoliciesTab.tsx","../../src/realm-settings/ProfilesTab.tsx","../../src/realm-settings/SessionsTab.tsx","../../src/realm-settings/ThemesTab.tsx","../../src/realm-settings/TokensTab.tsx","../../src/realm-settings/DefaultGroupsTab.tsx","../../src/realm-settings/UserRegistration.tsx","../../src/realm-settings/event-config/EventsTypeTable.tsx","../../src/realm-settings/event-config/AddEventTypesDialog.tsx","../../src/realm-settings/event-config/EventConfigForm.tsx","../../src/realm-settings/event-config/EventListenersForm.tsx","../../src/realm-settings/event-config/EventsTab.tsx","../../src/realm-settings/keys/KeysListTab.tsx","../../src/realm-settings/keys/key-providers/KeyProviderModal.tsx","../../src/realm-settings/keys/key-providers/KeyProvidersPicker.tsx","../../src/realm-settings/keys/KeysProvidersTab.tsx","../../src/realm-settings/keys/KeysTab.tsx","../../src/realm-settings/security-defences/HelpLinkTextInput.tsx","../../src/realm-settings/security-defences/HeadersForm.tsx","../../src/realm-settings/security-defences/Time.tsx","../../src/realm-settings/security-defences/BruteForceDetection.tsx","../../src/realm-settings/security-defences/SecurityDefenses.tsx","../../src/realm-settings/user-profile/AttributesGroupTab.tsx","../../src/realm-settings/user-profile/AttributesTab.tsx","../../src/realm-settings/user-profile/JsonEditorTab.tsx","../../src/realm-settings/user-profile/UserProfileTab.tsx","../../src/realm-settings/RealmSettingsTabs.tsx","../../src/realm-settings/RealmSettingsSection.tsx"],"sourcesContent":["import baseUniq from './_baseUniq.js';\n\n/**\n * This method is like `_.uniq` except that it accepts `comparator` which\n * is invoked to compare elements of `array`. The order of result values is\n * determined by the order they occur in the array.The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.uniqWith(objects, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]\n */\nfunction uniqWith(array, comparator) {\n  comparator = typeof comparator == 'function' ? comparator : undefined;\n  return (array && array.length) ? baseUniq(array, undefined, comparator) : [];\n}\n\nexport default uniqWith;\n","import * as React from 'react';\nimport { TextInput } from '@patternfly/react-core/dist/esm/components/TextInput';\nimport inlineStyles from '@patternfly/react-styles/css/components/InlineEdit/inline-edit';\nimport formStyles from '@patternfly/react-styles/css/components/Form/form';\nimport { css } from '@patternfly/react-styles';\nexport const EditableTextCell = ({ value, rowIndex, cellIndex, props, handleTextInputChange, inputAriaLabel, isDisabled = false }) => (React.createElement(React.Fragment, null,\n    React.createElement(\"div\", { className: inlineStyles.inlineEditValue }, value),\n    React.createElement(\"div\", { className: inlineStyles.inlineEditInput },\n        React.createElement(TextInput, { isDisabled: isDisabled, value: props.editableValue !== undefined ? props.editableValue : value, validated: props.isValid !== false ? 'default' : 'error', type: \"text\", onChange: (newValue, event) => {\n                handleTextInputChange(newValue, event, rowIndex, cellIndex);\n            }, \"aria-label\": inputAriaLabel }),\n        React.createElement(\"div\", { className: css(formStyles.formHelperText, formStyles.modifiers.error), \"aria-live\": \"polite\" }, props.errorText))));\nEditableTextCell.displayName = 'EditableTextCell';\n//# sourceMappingURL=EditableTextCell.js.map","import UserRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/userRepresentation\";\nimport { useState } from \"react\";\n\nimport { adminClient } from \"../admin-client\";\nimport { useWhoAmI } from \"../context/whoami/WhoAmI\";\nimport { useFetch } from \"./useFetch\";\n\nexport function useCurrentUser() {\n  const { whoAmI } = useWhoAmI();\n  const [currentUser, setCurrentUser] = useState();\n\n  const userId = whoAmI.getUserId();\n\n  useFetch(() => adminClient.users.findOne({ id: userId }), setCurrentUser, [\n    userId,\n  ]);\n\n  return currentUser;\n}\n","import type RealmRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/realmRepresentation\";\nimport {\n  ActionGroup,\n  ActionListItem,\n  Alert,\n  AlertActionLink,\n  AlertVariant,\n  Button,\n  Checkbox,\n  FormGroup,\n  PageSection,\n  Switch,\n} from \"@patternfly/react-core\";\nimport { Controller, useForm, useWatch } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\nimport { Link } from \"react-router-dom\";\nimport { HelpItem } from \"ui-shared\";\nimport { adminClient } from \"../admin-client\";\nimport { useAlerts } from \"../components/alert/Alerts\";\nimport { FormAccess } from \"../components/form/FormAccess\";\nimport { KeycloakTextInput } from \"../components/keycloak-text-input/KeycloakTextInput\";\nimport { PasswordInput } from \"../components/password-input/PasswordInput\";\nimport { FormPanel } from \"../components/scroll-form/FormPanel\";\nimport { useRealm } from \"../context/realm-context/RealmContext\";\nimport { toUser } from \"../user/routes/User\";\nimport { emailRegexPattern } from \"../util\";\nimport { useCurrentUser } from \"../utils/useCurrentUser\";\nimport useToggle from \"../utils/useToggle\";\n\nimport \"./realm-settings-section.css\";\n\ntype RealmSettingsEmailTabProps = {\n  realm: RealmRepresentation;\n  save: (realm: RealmRepresentation) => void;\n};\n\ntype FormFields = Omit;\n\nexport const RealmSettingsEmailTab = ({\n  realm,\n  save,\n}: RealmSettingsEmailTabProps) => {\n  const { t } = useTranslation(\"realm-settings\");\n  const { realm: realmName } = useRealm();\n  const { addAlert, addError } = useAlerts();\n  const currentUser = useCurrentUser();\n\n  const {\n    register,\n    control,\n    handleSubmit,\n    watch,\n    reset: resetForm,\n    getValues,\n    formState: { errors },\n  } = useForm({ defaultValues: realm });\n\n  const reset = () => resetForm(realm);\n  const watchFromValue = watch(\"smtpServer.from\", \"\");\n  const watchHostValue = watch(\"smtpServer.host\", \"\");\n  const [isTesting, toggleTest] = useToggle();\n\n  const authenticationEnabled = useWatch({\n    control,\n    name: \"smtpServer.auth\",\n    defaultValue: \"\",\n  });\n\n  const testConnection = async () => {\n    const toNumber = (value: string) => Number(value);\n    const toBoolean = (value: string) => value === true.toString();\n    const valueMapper = new Map unknown>([\n      [\"port\", toNumber],\n      [\"ssl\", toBoolean],\n      [\"starttls\", toBoolean],\n      [\"auth\", toBoolean],\n    ]);\n\n    const serverSettings = { ...getValues()[\"smtpServer\"] };\n\n    for (const [key, mapperFn] of valueMapper.entries()) {\n      serverSettings[key] = mapperFn(serverSettings[key]);\n    }\n\n    // For default value, back end is expecting null instead of 0\n    if (serverSettings.port === 0) serverSettings.port = null;\n\n    try {\n      toggleTest();\n      await adminClient.realms.testSMTPConnection(\n        { realm: realm.realm! },\n        serverSettings,\n      );\n      addAlert(t(\"testConnectionSuccess\"), AlertVariant.success);\n    } catch (error) {\n      addError(\"realm-settings:testConnectionError\", error);\n    }\n    toggleTest();\n  };\n\n  return (\n    \n      \n        \n          \n            \n          \n          \n            }\n          >\n            \n          \n          \n            \n          \n          \n            }\n          >\n            \n          \n          \n            }\n          >\n            \n          \n        \n      \n      \n        \n          \n            \n          \n          \n            \n          \n          \n             (\n                 field.onChange(\"\" + value)}\n                />\n              )}\n            />\n             (\n                 field.onChange(\"\" + value)}\n                />\n              )}\n            />\n          \n          \n             (\n                 {\n                    field.onChange(\"\" + value);\n                  }}\n                  aria-label={t(\"authentication\")}\n                />\n              )}\n            />\n          \n          {authenticationEnabled === \"true\" && (\n            <>\n              \n                \n              \n              \n                }\n              >\n                \n              \n            \n          )}\n          {currentUser && (\n            \n              {currentUser.email ? (\n                \n              ) : (\n                 (\n                        \n                      )}\n                    >\n                      {t(\"testConnectionHint.withoutEmailAction\")}\n                    \n                  }\n                />\n              )}\n            \n          )}\n          \n            \n              \n                {t(\"common:save\")}\n              \n            \n            \n               testConnection()}\n                data-testid=\"test-connection-button\"\n                isDisabled={\n                  !(emailRegexPattern.test(watchFromValue) && watchHostValue) ||\n                  !currentUser?.email\n                }\n                aria-describedby=\"descriptionTestConnection\"\n                isLoading={isTesting}\n                spinnerAriaValueText={t(\"testingConnection\")}\n              >\n                {t(\"common:testConnection\")}\n              \n            \n            \n              \n                {t(\"common:revert\")}\n              \n            \n          \n        \n      \n    \n  );\n};\n","import type RealmRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/realmRepresentation\";\nimport {\n  ActionGroup,\n  Button,\n  ClipboardCopy,\n  FormGroup,\n  PageSection,\n  Select,\n  SelectOption,\n  SelectVariant,\n  Stack,\n  StackItem,\n  Switch,\n} from \"@patternfly/react-core\";\nimport { useEffect, useState } from \"react\";\nimport { Controller, FormProvider, useForm } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\nimport { HelpItem } from \"ui-shared\";\n\nimport { adminClient } from \"../admin-client\";\nimport { FormattedLink } from \"../components/external-link/FormattedLink\";\nimport { FormAccess } from \"../components/form/FormAccess\";\nimport { KeyValueInput } from \"../components/key-value-form/KeyValueInput\";\nimport { KeycloakTextInput } from \"../components/keycloak-text-input/KeycloakTextInput\";\nimport { useRealm } from \"../context/realm-context/RealmContext\";\nimport {\n  addTrailingSlash,\n  convertAttributeNameToForm,\n  convertToFormValues,\n} from \"../util\";\nimport useIsFeatureEnabled, { Feature } from \"../utils/useIsFeatureEnabled\";\n\ntype RealmSettingsGeneralTabProps = {\n  realm: RealmRepresentation;\n  save: (realm: RealmRepresentation) => void;\n};\n\ntype FormFields = Omit;\n\nexport const RealmSettingsGeneralTab = ({\n  realm,\n  save,\n}: RealmSettingsGeneralTabProps) => {\n  const { t } = useTranslation(\"realm-settings\");\n  const { realm: realmName } = useRealm();\n  const form = useForm();\n  const {\n    register,\n    control,\n    handleSubmit,\n    setValue,\n    formState: { isDirty, errors },\n  } = form;\n  const isFeatureEnabled = useIsFeatureEnabled();\n  const [open, setOpen] = useState(false);\n\n  const requireSslTypes = [\"all\", \"external\", \"none\"];\n\n  const setupForm = () => {\n    convertToFormValues(realm, setValue);\n    if (realm.attributes?.[\"acr.loa.map\"]) {\n      const result = Object.entries(\n        JSON.parse(realm.attributes[\"acr.loa.map\"]),\n      ).flatMap(([key, value]) => ({ key, value }));\n      result.concat({ key: \"\", value: \"\" });\n      setValue(\n        convertAttributeNameToForm(\"attributes.acr.loa.map\") as any,\n        result,\n      );\n    }\n  };\n\n  useEffect(setupForm, []);\n\n  return (\n    \n      \n        \n           (\n              \n                {field.value}\n              \n            )}\n          />\n        \n        \n          \n        \n        \n          \n        \n        \n          }\n        >\n          \n        \n        \n          }\n        >\n           (\n               setOpen(!open)}\n                onSelect={(_, value) => {\n                  field.onChange(value as string);\n                  setOpen(false);\n                }}\n                selections={field.value}\n                variant={SelectVariant.single}\n                aria-label={t(\"requireSsl\")}\n                isOpen={open}\n              >\n                {requireSslTypes.map((sslType) => (\n                  \n                    {t(`sslType.${sslType}`)}\n                  \n                ))}\n              \n            )}\n          />\n        \n        \n          }\n        >\n          \n            \n          \n        \n        \n          }\n          fieldId=\"kc-user-managed-access\"\n        >\n           (\n              \n            )}\n          />\n        \n        {isFeatureEnabled(Feature.DeclarativeUserProfile) && (\n          \n            }\n            fieldId=\"kc-user-profile-enabled\"\n          >\n             (\n                 field.onChange(value.toString())}\n                  aria-label={t(\"userProfileEnabled\")}\n                />\n              )}\n            />\n          \n        )}\n        \n          }\n          fieldId=\"kc-endpoints\"\n        >\n          \n            \n              \n            \n            \n              \n            \n          \n        \n\n        \n          \n            {t(\"common:save\")}\n          \n          \n            {t(\"common:revert\")}\n          \n        \n      \n    \n  );\n};\n","import {\n  Button,\n  ButtonVariant,\n  Form,\n  FormGroup,\n  Modal,\n  ModalVariant,\n  ValidatedOptions,\n} from \"@patternfly/react-core\";\nimport { SubmitHandler, UseFormReturn } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\n\nimport type { KeyValueType } from \"../components/key-value-form/key-value-convert\";\nimport { KeycloakTextInput } from \"../components/keycloak-text-input/KeycloakTextInput\";\n\ntype AddMessageBundleModalProps = {\n  id?: string;\n  form: UseFormReturn;\n  save: SubmitHandler;\n  handleModalToggle: () => void;\n};\n\nexport type BundleForm = {\n  key: string;\n  value: string;\n  messageBundle: KeyValueType;\n};\n\nexport const AddMessageBundleModal = ({\n  handleModalToggle,\n  save,\n  form: {\n    register,\n    handleSubmit,\n    formState: { errors },\n  },\n}: AddMessageBundleModalProps) => {\n  const { t } = useTranslation(\"realm-settings\");\n\n  return (\n    \n          {t(\"common:create\")}\n        ,\n         {\n            handleModalToggle();\n          }}\n        >\n          {t(\"common:cancel\")}\n        ,\n      ]}\n    >\n      
\n \n \n \n \n \n \n \n \n );\n};\n","import type RealmRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/realmRepresentation\";\nimport {\n ActionGroup,\n AlertVariant,\n Button,\n Divider,\n FormGroup,\n PageSection,\n Select,\n SelectGroup,\n SelectOption,\n SelectVariant,\n Switch,\n TextContent,\n ToolbarItem,\n} from \"@patternfly/react-core\";\nimport { SearchIcon } from \"@patternfly/react-icons\";\nimport {\n EditableTextCell,\n IEditableTextCell,\n IRow,\n IRowCell,\n RowEditType,\n RowErrors,\n Table,\n TableBody,\n TableHeader,\n TableVariant,\n applyCellEdits,\n cancelCellEdits,\n validateCellEdits,\n} from \"@patternfly/react-table\";\nimport { cloneDeep, isEqual, uniqWith } from \"lodash-es\";\nimport { useEffect, useMemo, useState } from \"react\";\nimport { Controller, useForm, useWatch } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\nimport { HelpItem } from \"ui-shared\";\n\nimport { adminClient } from \"../admin-client\";\nimport { useAlerts } from \"../components/alert/Alerts\";\nimport { FormAccess } from \"../components/form/FormAccess\";\nimport type { KeyValueType } from \"../components/key-value-form/key-value-convert\";\nimport { ListEmptyState } from \"../components/list-empty-state/ListEmptyState\";\nimport { FormPanel } from \"../components/scroll-form/FormPanel\";\nimport { PaginatingTableToolbar } from \"../components/table-toolbar/PaginatingTableToolbar\";\nimport { useRealm } from \"../context/realm-context/RealmContext\";\nimport { useServerInfo } from \"../context/server-info/ServerInfoProvider\";\nimport { useWhoAmI } from \"../context/whoami/WhoAmI\";\nimport { DEFAULT_LOCALE } from \"../i18n/i18n\";\nimport { convertToFormValues } from \"../util\";\nimport { useFetch } from \"../utils/useFetch\";\nimport { AddMessageBundleModal } from \"./AddMessageBundleModal\";\n\ntype LocalizationTabProps = {\n save: (realm: RealmRepresentation) => void;\n refresh: () => void;\n realm: RealmRepresentation;\n};\n\nexport enum RowEditAction {\n Save = \"save\",\n Cancel = \"cancel\",\n Edit = \"edit\",\n Delete = \"delete\",\n}\n\nexport type BundleForm = {\n key: string;\n value: string;\n messageBundle: KeyValueType;\n};\n\nconst localeToDisplayName = (locale: string) => {\n try {\n return new Intl.DisplayNames([locale], { type: \"language\" }).of(locale);\n } catch (error) {\n return locale;\n }\n};\n\nexport const LocalizationTab = ({ save, realm }: LocalizationTabProps) => {\n const { t } = useTranslation(\"realm-settings\");\n const [addMessageBundleModalOpen, setAddMessageBundleModalOpen] =\n useState(false);\n\n const [supportedLocalesOpen, setSupportedLocalesOpen] = useState(false);\n const [defaultLocaleOpen, setDefaultLocaleOpen] = useState(false);\n const [filterDropdownOpen, setFilterDropdownOpen] = useState(false);\n const [selectMenuLocale, setSelectMenuLocale] = useState(DEFAULT_LOCALE);\n\n const { setValue, getValues, control, handleSubmit, formState } = useForm();\n const [selectMenuValueSelected, setSelectMenuValueSelected] = useState(false);\n const [messageBundles, setMessageBundles] = useState<[string, string][]>([]);\n const [tableRows, setTableRows] = useState([]);\n\n const themeTypes = useServerInfo().themes!;\n const allLocales = useMemo(() => {\n const locales = Object.values(themeTypes).flatMap((theme) =>\n theme.flatMap(({ locales }) => (locales ? locales : [])),\n );\n return Array.from(new Set(locales));\n }, [themeTypes]);\n const bundleForm = useForm({ mode: \"onChange\" });\n const { addAlert, addError } = useAlerts();\n const { realm: currentRealm } = useRealm();\n const { whoAmI } = useWhoAmI();\n\n const defaultSupportedLocales = realm.supportedLocales?.length\n ? realm.supportedLocales\n : [DEFAULT_LOCALE];\n\n const setupForm = () => {\n convertToFormValues(realm, setValue);\n setValue(\"supportedLocales\", defaultSupportedLocales);\n };\n\n useEffect(setupForm, []);\n\n const watchSupportedLocales: string[] = useWatch({\n control,\n name: \"supportedLocales\",\n defaultValue: defaultSupportedLocales,\n });\n const internationalizationEnabled = useWatch({\n control,\n name: \"internationalizationEnabled\",\n defaultValue: realm.internationalizationEnabled,\n });\n\n const [tableKey, setTableKey] = useState(0);\n const [max, setMax] = useState(10);\n const [first, setFirst] = useState(0);\n const [filter, setFilter] = useState(\"\");\n\n const refreshTable = () => {\n setTableKey(tableKey + 1);\n };\n\n useFetch(\n async () => {\n let result = await adminClient.realms\n .getRealmLocalizationTexts({\n first,\n max,\n realm: realm.realm!,\n selectedLocale:\n selectMenuLocale ||\n getValues(\"defaultLocale\") ||\n whoAmI.getLocale(),\n })\n // prevents server error in dev mode due to snowpack\n .catch(() => []);\n\n const searchInBundles = (idx: number) => {\n return Object.entries(result).filter((i) => i[idx].includes(filter));\n };\n\n if (filter) {\n const filtered = uniqWith(\n searchInBundles(0).concat(searchInBundles(1)),\n isEqual,\n );\n\n result = Object.fromEntries(filtered);\n }\n\n return { result };\n },\n ({ result }) => {\n const bundles = Object.entries(result).slice(first, first + max + 1);\n setMessageBundles(bundles);\n\n const updatedRows = bundles.map((messageBundle) => ({\n rowEditBtnAriaLabel: () =>\n t(\"rowEditBtnAriaLabel\", {\n messageBundle: messageBundle[1],\n }),\n rowSaveBtnAriaLabel: () =>\n t(\"rowSaveBtnAriaLabel\", {\n messageBundle: messageBundle[1],\n }),\n rowCancelBtnAriaLabel: () =>\n t(\"rowCancelBtnAriaLabel\", {\n messageBundle: messageBundle[1],\n }),\n cells: [\n {\n title: (value, rowIndex, cellIndex, props) => (\n \n ),\n props: {\n value: messageBundle[0],\n },\n },\n {\n title: (value, rowIndex, cellIndex, props) => (\n \n ),\n props: {\n value: messageBundle[1],\n },\n },\n ],\n }));\n setTableRows(updatedRows);\n\n return bundles;\n },\n [tableKey, filter, first, max],\n );\n\n const handleTextInputChange = (\n newValue: string,\n evt: any,\n rowIndex: number,\n cellIndex: number,\n ) => {\n setTableRows((prev) => {\n const newRows = cloneDeep(prev);\n const textCell = newRows[rowIndex]?.cells?.[\n cellIndex\n ] as IEditableTextCell;\n textCell.props.editableValue = newValue;\n return newRows;\n });\n };\n\n const updateEditableRows = async (\n type: RowEditType,\n rowIndex?: number,\n validationErrors?: RowErrors,\n ) => {\n if (rowIndex === undefined) {\n return;\n }\n const newRows = cloneDeep(tableRows);\n let newRow: IRow;\n const invalid =\n !!validationErrors && Object.keys(validationErrors).length > 0;\n\n if (invalid) {\n newRow = validateCellEdits(newRows[rowIndex], type, validationErrors);\n } else if (type === RowEditAction.Cancel) {\n newRow = cancelCellEdits(newRows[rowIndex]);\n } else {\n newRow = applyCellEdits(newRows[rowIndex], type);\n }\n newRows[rowIndex] = newRow;\n\n // Update the copy of the retrieved data set so we can save it when the user saves changes\n\n if (!invalid && type === RowEditAction.Save) {\n const key = (newRow.cells?.[0] as IRowCell).props.value;\n const value = (newRow.cells?.[1] as IRowCell).props.value;\n\n // We only have one editable value, otherwise we'd need to save each\n try {\n await adminClient.realms.addLocalization(\n {\n realm: realm.realm!,\n selectedLocale:\n selectMenuLocale || getValues(\"defaultLocale\") || DEFAULT_LOCALE,\n key,\n },\n value,\n );\n addAlert(t(\"updateMessageBundleSuccess\"), AlertVariant.success);\n } catch (error) {\n addAlert(t(\"updateMessageBundleError\"), AlertVariant.danger);\n }\n }\n setTableRows(newRows);\n };\n\n const handleModalToggle = () => {\n setAddMessageBundleModalOpen(!addMessageBundleModalOpen);\n };\n\n const options = [\n \n \n {localeToDisplayName(DEFAULT_LOCALE)}\n \n ,\n ,\n \n {watchSupportedLocales.map((locale) => (\n \n {localeToDisplayName(locale)}\n \n ))}\n ,\n ];\n\n const addKeyValue = async (pair: KeyValueType): Promise => {\n try {\n await adminClient.realms.addLocalization(\n {\n realm: currentRealm!,\n selectedLocale:\n selectMenuLocale || getValues(\"defaultLocale\") || DEFAULT_LOCALE,\n key: pair.key,\n },\n pair.value,\n );\n\n adminClient.setConfig({\n realmName: currentRealm!,\n });\n refreshTable();\n addAlert(t(\"addMessageBundleSuccess\"), AlertVariant.success);\n } catch (error) {\n addError(t(\"addMessageBundleError\"), error);\n }\n };\n\n const deleteKey = async (key: string) => {\n try {\n await adminClient.realms.deleteRealmLocalizationTexts({\n realm: currentRealm!,\n selectedLocale: selectMenuLocale,\n key,\n });\n refreshTable();\n addAlert(t(\"deleteMessageBundleSuccess\"));\n } catch (error) {\n addError(\"realm-settings:deleteMessageBundleError\", error);\n }\n };\n\n return (\n <>\n {addMessageBundleModalOpen && (\n {\n addKeyValue(pair);\n handleModalToggle();\n }}\n form={bundleForm}\n />\n )}\n \n \n \n }\n >\n (\n \n )}\n />\n \n {internationalizationEnabled && (\n <>\n \n (\n {\n setSupportedLocalesOpen(open);\n }}\n onSelect={(_, v) => {\n const option = v as string;\n if (field.value.includes(option)) {\n field.onChange(\n field.value.filter(\n (item: string) => item !== option,\n ),\n );\n } else {\n field.onChange([...field.value, option]);\n }\n }}\n onClear={() => {\n field.onChange([]);\n }}\n selections={field.value}\n variant={SelectVariant.typeaheadMulti}\n aria-label={t(\"supportedLocales\")}\n isOpen={supportedLocalesOpen}\n placeholderText={t(\"selectLocales\")}\n >\n {allLocales.map((locale) => (\n \n {localeToDisplayName(locale)}\n \n ))}\n \n )}\n />\n \n \n (\n setDefaultLocaleOpen(!defaultLocaleOpen)}\n onSelect={(_, value) => {\n field.onChange(value as string);\n setDefaultLocaleOpen(false);\n }}\n selections={\n field.value\n ? localeToDisplayName(field.value)\n : realm.defaultLocale !== \"\"\n ? localeToDisplayName(\n realm.defaultLocale || DEFAULT_LOCALE,\n )\n : t(\"placeholderText\")\n }\n variant={SelectVariant.single}\n aria-label={t(\"defaultLocale\")}\n isOpen={defaultLocaleOpen}\n placeholderText={t(\"placeholderText\")}\n data-testid=\"select-default-locale\"\n >\n {watchSupportedLocales.map((locale, idx) => (\n \n {localeToDisplayName(locale)}\n \n ))}\n \n )}\n />\n \n \n )}\n \n \n {t(\"common:save\")}\n \n \n \n \n\n \n \n {t(\"messageBundleDescription\")}\n \n
\n {\n setFirst(first);\n setMax(max);\n }}\n inputGroupName={\"common:search\"}\n inputGroupOnEnter={(search) => {\n setFilter(search);\n setFirst(0);\n setMax(10);\n }}\n inputGroupPlaceholder={t(\"searchForMessageBundle\")}\n toolbarItem={\n setAddMessageBundleModalOpen(true)}\n >\n {t(\"addMessageBundle\")}\n \n }\n searchTypeComponent={\n \n setFilterDropdownOpen(isExpanded)}\n onSelect={(_, value) => {\n setSelectMenuLocale(value.toString());\n setSelectMenuValueSelected(true);\n refreshTable();\n setFilterDropdownOpen(false);\n }}\n selections={\n selectMenuValueSelected\n ? localeToDisplayName(selectMenuLocale)\n : realm.defaultLocale !== \"\"\n ? localeToDisplayName(DEFAULT_LOCALE)\n : t(\"placeholderText\")\n }\n >\n {options}\n \n \n }\n >\n {messageBundles.length === 0 && !filter && (\n \n )}\n {messageBundles.length === 0 && filter && (\n \n )}\n {messageBundles.length !== 0 && (\n \n updateEditableRows(type, rowIndex, validation)\n }\n actions={[\n {\n title: t(\"common:delete\"),\n onClick: (_, row) =>\n deleteKey(\n (tableRows[row].cells?.[0] as IRowCell).props.value,\n ),\n },\n ]}\n >\n \n \n \n )}\n \n
\n
\n
\n \n );\n};\n","import type RealmRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/realmRepresentation\";\nimport { FormGroup, PageSection, Switch } from \"@patternfly/react-core\";\nimport { useTranslation } from \"react-i18next\";\nimport { HelpItem } from \"ui-shared\";\n\nimport { adminClient } from \"../admin-client\";\nimport { useAlerts } from \"../components/alert/Alerts\";\nimport { FormAccess } from \"../components/form/FormAccess\";\nimport { FormPanel } from \"../components/scroll-form/FormPanel\";\nimport { useRealm } from \"../context/realm-context/RealmContext\";\n\ntype RealmSettingsLoginTabProps = {\n realm: RealmRepresentation;\n refresh: () => void;\n};\n\ntype SwitchType = { [K in keyof RealmRepresentation]: boolean };\n\nexport const RealmSettingsLoginTab = ({\n realm,\n refresh,\n}: RealmSettingsLoginTabProps) => {\n const { t } = useTranslation(\"realm-settings\");\n\n const { addAlert, addError } = useAlerts();\n const { realm: realmName } = useRealm();\n\n const updateSwitchValue = async (switches: SwitchType | SwitchType[]) => {\n const name = Array.isArray(switches)\n ? Object.keys(switches[0])[0]\n : Object.keys(switches)[0];\n\n try {\n await adminClient.realms.update(\n {\n realm: realmName,\n },\n Array.isArray(switches)\n ? switches.reduce((realm, s) => Object.assign(realm, s), realm)\n : Object.assign(realm, switches),\n );\n addAlert(t(\"enableSwitchSuccess\", { switch: t(name) }));\n refresh();\n } catch (error) {\n addError(t(\"enableSwitchError\"), error);\n }\n };\n\n return (\n \n \n \n \n }\n hasNoPaddingTop\n >\n {\n updateSwitchValue({ registrationAllowed: value });\n }}\n aria-label={t(\"registrationAllowed\")}\n />\n \n \n }\n hasNoPaddingTop\n >\n {\n updateSwitchValue({ resetPasswordAllowed: value });\n }}\n aria-label={t(\"resetPasswordAllowed\")}\n />\n \n \n }\n hasNoPaddingTop\n >\n {\n updateSwitchValue({ rememberMe: value });\n }}\n aria-label={t(\"rememberMe\")}\n />\n \n \n \n \n \n \n }\n hasNoPaddingTop\n >\n {\n updateSwitchValue([\n {\n registrationEmailAsUsername: value,\n },\n {\n duplicateEmailsAllowed: false,\n },\n ]);\n }}\n aria-label={t(\"registrationEmailAsUsername\")}\n />\n \n \n }\n hasNoPaddingTop\n >\n {\n updateSwitchValue([\n {\n loginWithEmailAllowed: value,\n },\n { duplicateEmailsAllowed: false },\n ]);\n }}\n aria-label={t(\"loginWithEmailAllowed\")}\n />\n \n \n }\n hasNoPaddingTop\n >\n {\n updateSwitchValue({\n duplicateEmailsAllowed: value,\n });\n }}\n isDisabled={\n realm.loginWithEmailAllowed || realm.registrationEmailAsUsername\n }\n aria-label={t(\"duplicateEmailsAllowed\")}\n />\n \n \n }\n hasNoPaddingTop\n >\n {\n updateSwitchValue({ verifyEmail: value });\n }}\n aria-label={t(\"verifyEmail\")}\n />\n \n \n \n \n \n \n }\n hasNoPaddingTop\n >\n {\n updateSwitchValue({ editUsernameAllowed: value });\n }}\n aria-label={t(\"editUsernameAllowed\")}\n />\n \n \n \n \n );\n};\n","import {\n Alert,\n AlertVariant,\n Button,\n ButtonVariant,\n Form,\n FormGroup,\n Modal,\n ModalVariant,\n Switch,\n Text,\n TextContent,\n} from \"@patternfly/react-core\";\nimport { saveAs } from \"file-saver\";\nimport { useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { adminClient } from \"../admin-client\";\nimport { useAlerts } from \"../components/alert/Alerts\";\nimport { useRealm } from \"../context/realm-context/RealmContext\";\nimport { prettyPrintJSON } from \"../util\";\n\nimport \"./partial-export.css\";\n\nexport type PartialExportDialogProps = {\n isOpen: boolean;\n onClose: () => void;\n};\n\nexport const PartialExportDialog = ({\n isOpen,\n onClose,\n}: PartialExportDialogProps) => {\n const { t } = useTranslation(\"realm-settings\");\n const { realm } = useRealm();\n const { addAlert, addError } = useAlerts();\n\n const [exportGroupsAndRoles, setExportGroupsAndRoles] = useState(false);\n const [exportClients, setExportClients] = useState(false);\n const [isExporting, setIsExporting] = useState(false);\n\n const showWarning = exportGroupsAndRoles || exportClients;\n\n async function exportRealm() {\n setIsExporting(true);\n\n try {\n const realmExport = await adminClient.realms.export({\n realm,\n exportClients,\n exportGroupsAndRoles,\n });\n\n saveAs(\n new Blob([prettyPrintJSON(realmExport)], {\n type: \"application/json\",\n }),\n \"realm-export.json\",\n );\n\n addAlert(t(\"exportSuccess\"), AlertVariant.success);\n onClose();\n } catch (error) {\n addError(\"exportFail\", error);\n }\n\n setIsExporting(false);\n }\n\n return (\n \n {t(\"common:export\")}\n ,\n \n {t(\"common:cancel\")}\n ,\n ]}\n >\n \n {t(\"partialExportHeaderText\")}\n \n \n \n \n \n \n \n \n \n\n {showWarning && (\n \n {t(\"exportWarningDescription\")}\n \n )}\n \n );\n};\n","import type RealmRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/realmRepresentation\";\nimport type {\n PartialImportRealmRepresentation,\n PartialImportResponse,\n PartialImportResult,\n} from \"@keycloak/keycloak-admin-client/lib/defs/realmRepresentation\";\nimport type RoleRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/roleRepresentation\";\nimport {\n Alert,\n Button,\n ButtonVariant,\n Checkbox,\n DataList,\n DataListCell,\n DataListItem,\n DataListItemCells,\n DataListItemRow,\n Divider,\n Label,\n Modal,\n ModalVariant,\n Select,\n SelectOption,\n SelectOptionObject,\n Stack,\n StackItem,\n Text,\n TextContent,\n} from \"@patternfly/react-core\";\nimport {\n ChangeEvent,\n FormEvent,\n MouseEvent as ReactMouseEvent,\n useEffect,\n useState,\n} from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { adminClient } from \"../admin-client\";\nimport { useAlerts } from \"../components/alert/Alerts\";\nimport { JsonFileUpload } from \"../components/json-file-upload/JsonFileUpload\";\nimport { KeycloakDataTable } from \"../components/table-toolbar/KeycloakDataTable\";\nimport { useRealm } from \"../context/realm-context/RealmContext\";\n\nexport type PartialImportProps = {\n open: boolean;\n toggleDialog: () => void;\n};\n\n// An imported JSON file can either be an array of realm objects\n// or a single realm object.\ntype ImportedMultiRealm = RealmRepresentation | RealmRepresentation[];\n\ntype NonRoleResource = \"users\" | \"clients\" | \"groups\" | \"identityProviders\";\ntype RoleResource = \"realmRoles\" | \"clientRoles\";\ntype Resource = NonRoleResource | RoleResource;\n\ntype CollisionOption = \"FAIL\" | \"SKIP\" | \"OVERWRITE\";\n\ntype ResourceChecked = { [k in Resource]: boolean };\n\nconst INITIAL_RESOURCES: Readonly = {\n users: false,\n clients: false,\n groups: false,\n identityProviders: false,\n realmRoles: false,\n clientRoles: false,\n};\n\nexport const PartialImportDialog = (props: PartialImportProps) => {\n const { t } = useTranslation(\"realm-settings\");\n const { realm } = useRealm();\n\n const [importedFile, setImportedFile] = useState();\n const isFileSelected = !!importedFile;\n const [isRealmSelectOpen, setIsRealmSelectOpen] = useState(false);\n const [isCollisionSelectOpen, setIsCollisionSelectOpen] = useState(false);\n const [importInProgress, setImportInProgress] = useState(false);\n const [collisionOption, setCollisionOption] =\n useState(\"FAIL\");\n const [targetRealm, setTargetRealm] = useState({});\n const [importResponse, setImportResponse] = useState();\n const { addError } = useAlerts();\n\n const [resourcesToImport, setResourcesToImport] = useState(INITIAL_RESOURCES);\n const isAnyResourceChecked = Object.values(resourcesToImport).some(\n (checked) => checked,\n );\n\n const resetResourcesToImport = () => {\n setResourcesToImport(INITIAL_RESOURCES);\n };\n\n const resetInputState = () => {\n setImportedFile(undefined);\n setTargetRealm({});\n setCollisionOption(\"FAIL\");\n resetResourcesToImport();\n };\n\n // when dialog opens or closes, clear state\n useEffect(() => {\n setImportInProgress(false);\n setImportResponse(undefined);\n resetInputState();\n }, [props.open]);\n\n const handleFileChange = (value: ImportedMultiRealm) => {\n resetInputState();\n setImportedFile(value);\n\n if (!Array.isArray(value)) {\n setTargetRealm(value);\n } else if (value.length > 0) {\n setTargetRealm(value[0]);\n }\n };\n\n const handleRealmSelect = (realm: string | SelectOptionObject) => {\n setTargetRealm(realm as RealmRepresentation);\n setIsRealmSelectOpen(false);\n resetResourcesToImport();\n };\n\n const handleResourceCheckBox = (\n checked: boolean,\n event: FormEvent,\n ) => {\n const resource = event.currentTarget.name as Resource;\n\n setResourcesToImport({\n ...resourcesToImport,\n [resource]: checked,\n });\n };\n\n const realmSelectOptions = (realms: RealmRepresentation[]) =>\n realms.map((realm) => (\n \n {realm.realm || realm.id}\n \n ));\n\n const handleCollisionSelect = (\n event: ChangeEvent | ReactMouseEvent,\n option: string | SelectOptionObject,\n ) => {\n setCollisionOption(option as CollisionOption);\n setIsCollisionSelectOpen(false);\n };\n\n const collisionOptions = () => {\n return [\n \n {t(\"FAIL\")}\n ,\n \n {t(\"SKIP\")}\n ,\n \n {t(\"OVERWRITE\")}\n ,\n ];\n };\n\n const targetHasResources = () => {\n return (\n targetHasResource(\"users\") ||\n targetHasResource(\"groups\") ||\n targetHasResource(\"clients\") ||\n targetHasResource(\"identityProviders\") ||\n targetHasRealmRoles() ||\n targetHasClientRoles()\n );\n };\n\n const targetHasResource = (resource: NonRoleResource) => {\n const value = targetRealm[resource];\n return value !== undefined && value.length > 0;\n };\n\n const targetHasRealmRoles = () => {\n const value = targetRealm.roles?.realm;\n return value !== undefined && value.length > 0;\n };\n\n const targetHasClientRoles = () => {\n const value = targetRealm.roles?.client;\n return value !== undefined && Object.keys(value).length > 0;\n };\n\n const itemCount = (resource: Resource) => {\n if (!isFileSelected) return 0;\n\n if (resource === \"realmRoles\") {\n return targetRealm.roles?.realm?.length ?? 0;\n }\n\n if (resource === \"clientRoles\") {\n return targetHasClientRoles()\n ? clientRolesCount(targetRealm.roles!.client!)\n : 0;\n }\n\n return targetRealm[resource]?.length ?? 0;\n };\n\n const clientRolesCount = (\n clientRoles: Record,\n ) =>\n Object.values(clientRoles).reduce((total, role) => total + role.length, 0);\n\n const resourceDataListItem = (\n resource: Resource,\n resourceDisplayName: string,\n ) => {\n return (\n \n \n \n \n ,\n ]}\n />\n \n \n );\n };\n\n const jsonForImport = () => {\n const jsonToImport: PartialImportRealmRepresentation = {\n ifResourceExists: collisionOption,\n id: targetRealm.id,\n realm: targetRealm.realm,\n };\n\n if (resourcesToImport[\"users\"]) jsonToImport.users = targetRealm.users;\n if (resourcesToImport[\"groups\"]) jsonToImport.groups = targetRealm.groups;\n if (resourcesToImport[\"identityProviders\"])\n jsonToImport.identityProviders = targetRealm.identityProviders;\n if (resourcesToImport[\"clients\"])\n jsonToImport.clients = targetRealm.clients;\n if (resourcesToImport[\"realmRoles\"] || resourcesToImport[\"clientRoles\"]) {\n jsonToImport.roles = targetRealm.roles;\n if (!resourcesToImport[\"realmRoles\"]) delete jsonToImport.roles?.realm;\n if (!resourcesToImport[\"clientRoles\"]) delete jsonToImport.roles?.client;\n }\n return jsonToImport;\n };\n\n async function doImport() {\n if (importInProgress) return;\n\n setImportInProgress(true);\n\n try {\n const importResults = await adminClient.realms.partialImport({\n realm,\n rep: jsonForImport(),\n });\n setImportResponse(importResults);\n } catch (error) {\n addError(\"realm-settings:importFail\", error);\n }\n\n setImportInProgress(false);\n }\n\n const importModal = () => {\n return (\n {\n doImport();\n }}\n >\n {t(\"import\")}\n ,\n {\n props.toggleDialog();\n }}\n >\n {t(\"common:cancel\")}\n ,\n ]}\n >\n \n \n \n {t(\"partialImportHeaderText\")}\n \n \n \n \n \n\n {isFileSelected && targetHasResources() && (\n <>\n \n \n \n {Array.isArray(importedFile) && importedFile.length > 1 && (\n \n {t(\"selectRealm\")}:\n setIsRealmSelectOpen(!isRealmSelectOpen)}\n onSelect={(_, value) => handleRealmSelect(value)}\n placeholderText={targetRealm.realm || targetRealm.id}\n >\n {realmSelectOptions(importedFile)}\n \n \n )}\n \n {t(\"chooseResources\")}:\n \n {targetHasResource(\"users\") &&\n resourceDataListItem(\"users\", t(\"common:users\"))}\n {targetHasResource(\"groups\") &&\n resourceDataListItem(\"groups\", t(\"common:groups\"))}\n {targetHasResource(\"clients\") &&\n resourceDataListItem(\"clients\", t(\"common:clients\"))}\n {targetHasResource(\"identityProviders\") &&\n resourceDataListItem(\n \"identityProviders\",\n t(\"common:identityProviders\"),\n )}\n {targetHasRealmRoles() &&\n resourceDataListItem(\"realmRoles\", t(\"common:realmRoles\"))}\n {targetHasClientRoles() &&\n resourceDataListItem(\n \"clientRoles\",\n t(\"common:clientRoles\"),\n )}\n \n \n \n {t(\"selectIfResourceExists\")}:\n {\n setIsCollisionSelectOpen(!isCollisionSelectOpen);\n }}\n onSelect={handleCollisionSelect}\n placeholderText={t(collisionOption)}\n >\n {collisionOptions()}\n \n \n \n )}\n \n \n );\n };\n\n const importCompleteMessage = () => {\n return `${t(\"importAdded\", {\n count: importResponse?.added,\n })} ${t(\"importSkipped\", {\n count: importResponse?.skipped,\n })} ${t(\"importOverwritten\", {\n count: importResponse?.overwritten,\n })}`;\n };\n\n const loader = async (first = 0, max = 15) => {\n if (!importResponse) {\n return [];\n }\n\n const last = Math.min(first + max, importResponse.results.length);\n\n return importResponse.results.slice(first, last);\n };\n\n const ActionLabel = (importRecord: PartialImportResult) => {\n switch (importRecord.action) {\n case \"ADDED\":\n return (\n \n );\n case \"SKIPPED\":\n return (\n \n );\n case \"OVERWRITTEN\":\n return (\n \n );\n default:\n return \"\";\n }\n };\n\n const TypeRenderer = (importRecord: PartialImportResult) => {\n const typeMap = new Map([\n [\"CLIENT\", t(\"common:clients\")],\n [\"REALM_ROLE\", t(\"common:realmRoles\")],\n [\"USER\", t(\"common:users\")],\n [\"CLIENT_ROLE\", t(\"common:clientRoles\")],\n [\"IDP\", t(\"common:identityProviders\")],\n [\"GROUP\", t(\"common:groups\")],\n ]);\n\n return {typeMap.get(importRecord.resourceType)};\n };\n\n const importCompletedModal = () => {\n return (\n {\n props.toggleDialog();\n }}\n >\n {t(\"common:close\")}\n ,\n ]}\n >\n \n \n \n );\n };\n\n if (!importResponse) {\n return importModal();\n }\n\n return importCompletedModal();\n};\n","import type ClientPolicyRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/clientPolicyRepresentation\";\nimport { CodeEditor, Language } from \"@patternfly/react-code-editor\";\nimport {\n AlertVariant,\n Button,\n ButtonVariant,\n Divider,\n Flex,\n FlexItem,\n PageSection,\n Radio,\n Switch,\n Title,\n ToolbarItem,\n} from \"@patternfly/react-core\";\nimport { useState } from \"react\";\nimport { Controller, useForm } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\nimport { Link, useNavigate } from \"react-router-dom\";\n\nimport { adminClient } from \"../admin-client\";\nimport { useAlerts } from \"../components/alert/Alerts\";\nimport { useConfirmDialog } from \"../components/confirm-dialog/ConfirmDialog\";\nimport { KeycloakSpinner } from \"../components/keycloak-spinner/KeycloakSpinner\";\nimport { ListEmptyState } from \"../components/list-empty-state/ListEmptyState\";\nimport {\n Action,\n KeycloakDataTable,\n} from \"../components/table-toolbar/KeycloakDataTable\";\nimport { useRealm } from \"../context/realm-context/RealmContext\";\nimport { prettyPrintJSON } from \"../util\";\nimport { useFetch } from \"../utils/useFetch\";\nimport { toAddClientPolicy } from \"./routes/AddClientPolicy\";\nimport { toClientPolicies } from \"./routes/ClientPolicies\";\nimport { toEditClientPolicy } from \"./routes/EditClientPolicy\";\n\nimport \"./realm-settings-section.css\";\n\nexport const PoliciesTab = () => {\n const { t } = useTranslation(\"realm-settings\");\n const { addAlert, addError } = useAlerts();\n const { realm } = useRealm();\n const navigate = useNavigate();\n const [show, setShow] = useState(false);\n const [policies, setPolicies] = useState();\n const [selectedPolicy, setSelectedPolicy] =\n useState();\n const [key, setKey] = useState(0);\n const [code, setCode] = useState();\n const [tablePolicies, setTablePolicies] =\n useState();\n const refresh = () => setKey(key + 1);\n\n const form = useForm>({ mode: \"onChange\" });\n\n useFetch(\n () => adminClient.clientPolicies.listPolicies(),\n (policies) => {\n setPolicies(policies.policies),\n setTablePolicies(policies.policies || []),\n setCode(prettyPrintJSON(policies.policies));\n },\n [key],\n );\n\n const loader = async () => policies ?? [];\n\n const saveStatus = async () => {\n const switchValues = form.getValues();\n\n const updatedPolicies = policies?.map(\n (policy) => {\n const enabled = switchValues[policy.name!];\n\n return {\n ...policy,\n enabled,\n };\n },\n );\n\n try {\n await adminClient.clientPolicies.updatePolicy({\n policies: updatedPolicies,\n });\n navigate(toClientPolicies({ realm, tab: \"policies\" }));\n addAlert(\n t(\"realm-settings:updateClientPolicySuccess\"),\n AlertVariant.success,\n );\n } catch (error) {\n addError(\"realm-settings:updateClientPolicyError\", error);\n }\n };\n\n const ClientPolicyDetailLink = ({ name }: ClientPolicyRepresentation) => (\n {name}\n );\n\n const SwitchRenderer = ({\n clientPolicy,\n }: {\n clientPolicy: ClientPolicyRepresentation;\n }) => {\n const [toggleDisableDialog, DisableConfirm] = useConfirmDialog({\n titleKey: \"realm-settings:disablePolicyConfirmTitle\",\n messageKey: \"realm-settings:disablePolicyConfirm\",\n continueButtonLabel: \"common:disable\",\n onConfirm: () => {\n form.setValue(clientPolicy.name!, false);\n saveStatus();\n },\n });\n\n return (\n <>\n \n (\n {\n if (!value) {\n toggleDisableDialog();\n } else {\n field.onChange(value);\n saveStatus();\n }\n }}\n aria-label={clientPolicy.name!}\n />\n )}\n />\n \n );\n };\n\n const save = async () => {\n if (!code) {\n return;\n }\n\n try {\n const obj: ClientPolicyRepresentation[] = JSON.parse(code);\n\n try {\n await adminClient.clientPolicies.updatePolicy({\n policies: obj,\n });\n addAlert(\n t(\"realm-settings:updateClientPoliciesSuccess\"),\n AlertVariant.success,\n );\n refresh();\n } catch (error) {\n addError(\"realm-settings:updateClientPoliciesError\", error);\n }\n } catch (error) {\n console.warn(\"Invalid json, ignoring value using {}\");\n addError(\"realm-settings:updateClientPoliciesError\", error);\n }\n };\n\n const [toggleDeleteDialog, DeleteConfirm] = useConfirmDialog({\n titleKey: t(\"deleteClientPolicyConfirmTitle\"),\n messageKey: t(\"deleteClientPolicyConfirm\", {\n policyName: selectedPolicy?.name,\n }),\n continueButtonLabel: t(\"delete\"),\n continueButtonVariant: ButtonVariant.danger,\n onConfirm: async () => {\n const updatedPolicies = policies?.filter(\n (policy) => policy.name !== selectedPolicy?.name,\n );\n\n try {\n await adminClient.clientPolicies.updatePolicy({\n policies: updatedPolicies,\n });\n addAlert(t(\"deleteClientPolicySuccess\"), AlertVariant.success);\n refresh();\n } catch (error) {\n addError(t(\"deleteClientPolicyError\"), error);\n }\n },\n });\n\n if (!policies) {\n return ;\n }\n return (\n <>\n \n \n \n \n \n {t(\"policiesConfigType\")}\n \n \n \n setShow(false)}\n label={t(\"policiesConfigTypes.formView\")}\n id=\"formView-policiesView\"\n data-testid=\"formView-policiesView\"\n className=\"kc-form-radio-btn pf-u-mr-sm pf-u-ml-sm\"\n />\n \n \n setShow(true)}\n label={t(\"policiesConfigTypes.jsonEditor\")}\n id=\"jsonEditor-policiesView\"\n data-testid=\"jsonEditor-policiesView\"\n className=\"kc-editor-radio-btn\"\n />\n \n \n \n \n {!show ? (\n navigate(toAddClientPolicy({ realm }))}\n />\n }\n ariaLabelKey=\"realm-settings:clientPolicies\"\n searchPlaceholderKey=\"realm-settings:clientPolicySearch\"\n loader={loader}\n toolbarItem={\n \n (\n \n )}\n data-testid=\"createPolicy\"\n >\n {t(\"createClientPolicy\")}\n \n \n }\n actions={[\n {\n title: t(\"common:delete\"),\n onRowClick: (item) => {\n toggleDeleteDialog();\n setSelectedPolicy(item);\n },\n } as Action,\n ]}\n columns={[\n {\n name: \"name\",\n cellRenderer: ClientPolicyDetailLink,\n },\n {\n name: \"enabled\",\n displayKey: \"realm-settings:status\",\n cellRenderer: (clientPolicy) => (\n \n ),\n },\n {\n name: \"description\",\n },\n ]}\n />\n ) : (\n <>\n
\n \n
\n
\n \n {t(\"save\")}\n \n {\n setCode(prettyPrintJSON(tablePolicies));\n }}\n >\n {t(\"reload\")}\n \n
\n \n )}\n \n );\n};\n","import type ClientProfileRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/clientProfileRepresentation\";\nimport { CodeEditor, Language } from \"@patternfly/react-code-editor\";\nimport {\n ActionGroup,\n AlertVariant,\n Button,\n ButtonVariant,\n Divider,\n Flex,\n FlexItem,\n FormGroup,\n Label,\n PageSection,\n Radio,\n Title,\n ToolbarItem,\n} from \"@patternfly/react-core\";\nimport { omit } from \"lodash-es\";\nimport { useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Link } from \"react-router-dom\";\n\nimport { adminClient } from \"../admin-client\";\nimport { useAlerts } from \"../components/alert/Alerts\";\nimport { useConfirmDialog } from \"../components/confirm-dialog/ConfirmDialog\";\nimport { KeycloakSpinner } from \"../components/keycloak-spinner/KeycloakSpinner\";\nimport { ListEmptyState } from \"../components/list-empty-state/ListEmptyState\";\nimport {\n Action,\n KeycloakDataTable,\n} from \"../components/table-toolbar/KeycloakDataTable\";\nimport { useRealm } from \"../context/realm-context/RealmContext\";\nimport { prettyPrintJSON } from \"../util\";\nimport { useFetch } from \"../utils/useFetch\";\nimport { toAddClientProfile } from \"./routes/AddClientProfile\";\nimport { toClientProfile } from \"./routes/ClientProfile\";\n\nimport \"./realm-settings-section.css\";\n\ntype ClientProfile = ClientProfileRepresentation & {\n global: boolean;\n};\n\nexport default function ProfilesTab() {\n const { t } = useTranslation(\"realm-settings\");\n const { realm } = useRealm();\n const { addAlert, addError } = useAlerts();\n const [tableProfiles, setTableProfiles] = useState();\n const [globalProfiles, setGlobalProfiles] =\n useState();\n const [selectedProfile, setSelectedProfile] = useState();\n const [show, setShow] = useState(false);\n const [code, setCode] = useState();\n const [key, setKey] = useState(0);\n\n useFetch(\n () =>\n adminClient.clientPolicies.listProfiles({\n includeGlobalProfiles: true,\n }),\n (allProfiles) => {\n setGlobalProfiles(allProfiles.globalProfiles);\n\n const globalProfiles = allProfiles.globalProfiles?.map(\n (globalProfiles) => ({\n ...globalProfiles,\n global: true,\n }),\n );\n\n const profiles = allProfiles.profiles?.map((profiles) => ({\n ...profiles,\n global: false,\n }));\n\n const allClientProfiles = globalProfiles?.concat(profiles ?? []);\n setTableProfiles(allClientProfiles || []);\n setCode(JSON.stringify(allClientProfiles, null, 2));\n },\n [key],\n );\n\n const loader = async () => tableProfiles ?? [];\n\n const normalizeProfile = (\n profile: ClientProfile,\n ): ClientProfileRepresentation => omit(profile, \"global\");\n\n const [toggleDeleteDialog, DeleteConfirm] = useConfirmDialog({\n titleKey: t(\"deleteClientProfileConfirmTitle\"),\n messageKey: t(\"deleteClientProfileConfirm\", {\n profileName: selectedProfile?.name,\n }),\n continueButtonLabel: t(\"delete\"),\n continueButtonVariant: ButtonVariant.danger,\n onConfirm: async () => {\n const updatedProfiles = tableProfiles\n ?.filter(\n (profile) =>\n profile.name !== selectedProfile?.name && !profile.global,\n )\n .map((profile) =>\n normalizeProfile(profile),\n );\n\n try {\n await adminClient.clientPolicies.createProfiles({\n profiles: updatedProfiles,\n globalProfiles,\n });\n addAlert(t(\"deleteClientSuccess\"), AlertVariant.success);\n setKey(key + 1);\n } catch (error) {\n addError(t(\"deleteClientError\"), error);\n }\n },\n });\n\n const cellFormatter = (row: ClientProfile) => (\n \n {row.name} {row.global && }\n \n );\n\n if (!tableProfiles) {\n return ;\n }\n\n const save = async () => {\n if (!code) {\n return;\n }\n\n try {\n const obj: ClientProfile[] = JSON.parse(code);\n const changedProfiles = obj\n .filter((profile) => !profile.global)\n .map((profile) => normalizeProfile(profile));\n\n const changedGlobalProfiles = obj\n .filter((profile) => profile.global)\n .map((profile) => normalizeProfile(profile));\n\n try {\n await adminClient.clientPolicies.createProfiles({\n profiles: changedProfiles,\n globalProfiles: changedGlobalProfiles,\n });\n addAlert(\n t(\"realm-settings:updateClientProfilesSuccess\"),\n AlertVariant.success,\n );\n setKey(key + 1);\n } catch (error) {\n addError(\"realm-settings:updateClientProfilesError\", error);\n }\n } catch (error) {\n console.warn(\"Invalid json, ignoring value using {}\");\n }\n };\n\n return (\n <>\n \n \n \n \n \n {t(\"profilesConfigType\")}\n \n \n \n setShow(false)}\n label={t(\"profilesConfigTypes.formView\")}\n id=\"formView-profilesView\"\n className=\"kc-form-radio-btn pf-u-mr-sm pf-u-ml-sm\"\n data-testid=\"formView-profilesView\"\n />\n \n \n setShow(true)}\n label={t(\"profilesConfigTypes.jsonEditor\")}\n id=\"jsonEditor-profilesView\"\n className=\"kc-editor-radio-btn\"\n data-testid=\"jsonEditor-profilesView\"\n />\n \n \n \n \n {!show ? (\n \n (\n \n )}\n data-testid=\"createProfile\"\n >\n {t(\"createClientProfile\")}\n \n \n }\n isRowDisabled={(value) => value.global}\n actions={[\n {\n title: t(\"common:delete\"),\n onRowClick: (profile) => {\n setSelectedProfile(profile);\n toggleDeleteDialog();\n },\n } as Action,\n ]}\n columns={[\n {\n name: \"name\",\n displayKey: t(\"common:name\"),\n cellRenderer: cellFormatter,\n },\n {\n name: \"description\",\n displayKey: t(\"clientProfileDescription\"),\n },\n ]}\n emptyState={\n \n }\n />\n ) : (\n \n
\n {\n setCode(value ?? \"\");\n }}\n />\n
\n \n
\n \n {t(\"save\")}\n \n {\n setCode(prettyPrintJSON(tableProfiles));\n }}\n data-testid=\"jsonEditor-reloadBtn\"\n >\n {t(\"reload\")}\n \n
\n
\n
\n )}\n \n );\n}\n","import type RealmRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/realmRepresentation\";\nimport {\n ActionGroup,\n Button,\n FormGroup,\n PageSection,\n Switch,\n} from \"@patternfly/react-core\";\nimport { useEffect } from \"react\";\nimport { Controller, useForm, useWatch } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { FormAccess } from \"../components/form/FormAccess\";\nimport { HelpItem } from \"ui-shared\";\nimport { FormPanel } from \"../components/scroll-form/FormPanel\";\nimport { TimeSelector } from \"../components/time-selector/TimeSelector\";\nimport { convertToFormValues } from \"../util\";\n\nimport \"./realm-settings-section.css\";\n\ntype RealmSettingsSessionsTabProps = {\n realm: RealmRepresentation;\n save: (realm: RealmRepresentation) => void;\n};\n\nexport const RealmSettingsSessionsTab = ({\n realm,\n save,\n}: RealmSettingsSessionsTabProps) => {\n const { t } = useTranslation(\"realm-settings\");\n\n const { setValue, control, handleSubmit, formState } =\n useForm();\n\n const offlineSessionMaxEnabled = useWatch({\n control,\n name: \"offlineSessionMaxLifespanEnabled\",\n });\n\n const setupForm = () => {\n convertToFormValues(realm, setValue);\n };\n\n useEffect(setupForm, []);\n\n return (\n \n \n \n \n }\n >\n (\n \n )}\n />\n \n\n \n }\n >\n (\n \n )}\n />\n \n\n \n }\n >\n (\n \n )}\n />\n \n\n \n }\n >\n (\n \n )}\n />\n \n \n \n \n \n \n }\n >\n (\n \n )}\n />\n \n\n \n }\n >\n (\n \n )}\n />\n \n \n \n \n \n \n }\n >\n (\n \n )}\n />\n \n\n \n }\n >\n (\n \n )}\n />\n \n {offlineSessionMaxEnabled && (\n \n }\n >\n (\n \n )}\n />\n \n )}\n \n \n \n \n \n }\n >\n (\n \n )}\n />\n \n \n }\n >\n (\n \n )}\n />\n \n \n \n {t(\"common:save\")}\n \n \n \n \n \n \n );\n};\n","import type RealmRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/realmRepresentation\";\nimport {\n ActionGroup,\n Button,\n FormGroup,\n PageSection,\n Select,\n SelectOption,\n SelectVariant,\n} from \"@patternfly/react-core\";\nimport { useEffect, useState } from \"react\";\nimport { Controller, useForm } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { FormAccess } from \"../components/form/FormAccess\";\nimport { HelpItem } from \"ui-shared\";\nimport { useServerInfo } from \"../context/server-info/ServerInfoProvider\";\nimport { convertToFormValues } from \"../util\";\n\ntype RealmSettingsThemesTabProps = {\n realm: RealmRepresentation;\n save: (realm: RealmRepresentation) => void;\n};\n\nexport const RealmSettingsThemesTab = ({\n realm,\n save,\n}: RealmSettingsThemesTabProps) => {\n const { t } = useTranslation(\"realm-settings\");\n\n const [loginThemeOpen, setLoginThemeOpen] = useState(false);\n const [accountThemeOpen, setAccountThemeOpen] = useState(false);\n const [adminUIThemeOpen, setAdminUIThemeOpen] = useState(false);\n const [emailThemeOpen, setEmailThemeOpen] = useState(false);\n\n const { control, handleSubmit, setValue } = useForm();\n const themeTypes = useServerInfo().themes!;\n\n const setupForm = () => {\n convertToFormValues(realm, setValue);\n };\n useEffect(setupForm, []);\n\n return (\n \n \n \n }\n >\n (\n setLoginThemeOpen(!loginThemeOpen)}\n onSelect={(_, value) => {\n field.onChange(value as string);\n setLoginThemeOpen(false);\n }}\n selections={field.value}\n variant={SelectVariant.single}\n isOpen={loginThemeOpen}\n placeholderText={t(\"selectATheme\")}\n data-testid=\"select-login-theme\"\n >\n {themeTypes.login.map((theme, idx) => (\n \n {t(`${theme.name}`)}\n \n ))}\n \n )}\n />\n \n \n }\n >\n (\n setAccountThemeOpen(!accountThemeOpen)}\n onSelect={(_, value) => {\n field.onChange(value as string);\n setAccountThemeOpen(false);\n }}\n selections={field.value}\n variant={SelectVariant.single}\n aria-label={t(\"accountTheme\")}\n isOpen={accountThemeOpen}\n placeholderText={t(\"selectATheme\")}\n data-testid=\"select-account-theme\"\n >\n {themeTypes.account\n .filter((theme) => theme.name !== \"base\")\n .map((theme, idx) => (\n \n {t(`${theme.name}`)}\n \n ))}\n \n )}\n />\n \n \n }\n >\n (\n setAdminUIThemeOpen(!adminUIThemeOpen)}\n onSelect={(_, value) => {\n field.onChange(value as string);\n setAdminUIThemeOpen(false);\n }}\n selections={field.value}\n variant={SelectVariant.single}\n isOpen={adminUIThemeOpen}\n placeholderText={t(\"selectATheme\")}\n data-testid=\"select-admin-theme\"\n >\n {themeTypes.admin\n .filter((theme) => theme.name !== \"base\")\n .map((theme, idx) => (\n \n {t(`${theme.name}`)}\n \n ))}\n \n )}\n />\n \n \n }\n >\n (\n setEmailThemeOpen(!emailThemeOpen)}\n onSelect={(_, value) => {\n field.onChange(value as string);\n setEmailThemeOpen(false);\n }}\n selections={field.value}\n variant={SelectVariant.single}\n isOpen={emailThemeOpen}\n placeholderText={t(\"selectATheme\")}\n data-testid=\"select-email-theme\"\n >\n {themeTypes.email.map((theme, idx) => (\n \n {t(`${theme.name}`)}\n \n ))}\n \n )}\n />\n \n \n \n \n \n \n \n );\n};\n","import type RealmRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/realmRepresentation\";\nimport {\n ActionGroup,\n Button,\n FormGroup,\n NumberInput,\n PageSection,\n Select,\n SelectOption,\n SelectVariant,\n Switch,\n Text,\n TextVariants,\n} from \"@patternfly/react-core\";\nimport { useEffect, useState } from \"react\";\nimport { Controller, useForm, useWatch } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { FormAccess } from \"../components/form/FormAccess\";\nimport { HelpItem } from \"ui-shared\";\nimport { KeycloakTextInput } from \"../components/keycloak-text-input/KeycloakTextInput\";\nimport { FormPanel } from \"../components/scroll-form/FormPanel\";\nimport {\n TimeSelector,\n toHumanFormat,\n} from \"../components/time-selector/TimeSelector\";\nimport { useServerInfo } from \"../context/server-info/ServerInfoProvider\";\nimport { useWhoAmI } from \"../context/whoami/WhoAmI\";\nimport { convertToFormValues, sortProviders } from \"../util\";\n\nimport \"./realm-settings-section.css\";\n\ntype RealmSettingsSessionsTabProps = {\n realm: RealmRepresentation;\n save: (realm: RealmRepresentation) => void;\n reset?: () => void;\n};\n\nexport const RealmSettingsTokensTab = ({\n realm,\n reset,\n save,\n}: RealmSettingsSessionsTabProps) => {\n const { t } = useTranslation(\"realm-settings\");\n const serverInfo = useServerInfo();\n const { whoAmI } = useWhoAmI();\n\n const [defaultSigAlgDrpdwnIsOpen, setDefaultSigAlgDrpdwnOpen] =\n useState(false);\n\n const defaultSigAlgOptions = sortProviders(\n serverInfo.providers![\"signature\"].providers,\n );\n\n const form = useForm();\n const { setValue, control } = form;\n\n const offlineSessionMaxEnabled = useWatch({\n control,\n name: \"offlineSessionMaxLifespanEnabled\",\n defaultValue: realm.offlineSessionMaxLifespanEnabled,\n });\n\n const ssoSessionIdleTimeout = useWatch({\n control,\n name: \"ssoSessionIdleTimeout\",\n defaultValue: 36000,\n });\n\n const revokeRefreshToken = useWatch({\n control,\n name: \"revokeRefreshToken\",\n defaultValue: false,\n });\n\n useEffect(() => {\n convertToFormValues(realm, setValue);\n }, []);\n\n return (\n \n \n \n \n }\n >\n (\n \n setDefaultSigAlgDrpdwnOpen(!defaultSigAlgDrpdwnIsOpen)\n }\n onSelect={(_, value) => {\n field.onChange(value.toString());\n setDefaultSigAlgDrpdwnOpen(false);\n }}\n selections={[field.value?.toString()]}\n variant={SelectVariant.single}\n aria-label={t(\"defaultSigAlg\")}\n isOpen={defaultSigAlgDrpdwnIsOpen}\n data-testid=\"select-default-sig-alg\"\n >\n {defaultSigAlgOptions!.map((p, idx) => (\n \n ))}\n \n )}\n />\n \n\n \n }\n >\n (\n \n )}\n />\n \n \n }\n >\n (\n field.onChange(field.value || 0 + 1)}\n onMinus={() => field.onChange(field.value || 0 - 1)}\n onChange={(event) => {\n const newValue = Number(event.currentTarget.value);\n field.onChange(!isNaN(newValue) ? newValue : 0);\n }}\n placeholder={t(\"oAuthDevicePollingInterval\")}\n />\n )}\n />\n \n \n }\n >\n \n \n \n \n \n \n \n }\n >\n (\n \n )}\n />\n \n {revokeRefreshToken && (\n \n }\n fieldId=\"refreshTokenMaxReuse\"\n >\n (\n field.onChange(field.value! + 1)}\n onMinus={() => field.onChange(field.value! - 1)}\n onChange={(event) =>\n field.onChange(\n Number((event.target as HTMLInputElement).value),\n )\n }\n />\n )}\n />\n \n )}\n \n \n \n \n \n }\n >\n (\n ssoSessionIdleTimeout!\n ? \"warning\"\n : \"default\"\n }\n className=\"kc-access-token-lifespan\"\n data-testid=\"access-token-lifespan-input\"\n aria-label=\"access-token-lifespan\"\n value={field.value!}\n onChange={field.onChange}\n units={[\"minute\", \"hour\", \"day\"]}\n />\n )}\n />\n \n\n \n }\n >\n (\n \n )}\n />\n \n \n }\n >\n (\n \n )}\n />\n \n\n {offlineSessionMaxEnabled && (\n \n }\n >\n (\n \n )}\n />\n \n )}\n \n \n \n \n \n }\n >\n (\n \n )}\n />\n \n \n }\n >\n (\n \n )}\n />\n \n \n {t(\"overrideActionTokens\")}\n \n \n (\n field.onChange(value.toString())}\n units={[\"minute\", \"hour\", \"day\"]}\n />\n )}\n />\n \n \n (\n \n )}\n />\n \n \n (\n \n )}\n />\n \n \n (\n \n )}\n />\n \n \n \n {t(\"common:save\")}\n \n \n \n \n \n \n );\n};\n","import type GroupRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/groupRepresentation\";\nimport {\n AlertVariant,\n Button,\n ButtonVariant,\n Dropdown,\n DropdownItem,\n KebabToggle,\n Popover,\n Text,\n TextContent,\n ToolbarItem,\n} from \"@patternfly/react-core\";\nimport { QuestionCircleIcon } from \"@patternfly/react-icons\";\nimport { useState } from \"react\";\nimport { Trans, useTranslation } from \"react-i18next\";\nimport { Link } from \"react-router-dom\";\nimport { useHelp } from \"ui-shared\";\n\nimport { adminClient } from \"../admin-client\";\nimport { useAlerts } from \"../components/alert/Alerts\";\nimport { useConfirmDialog } from \"../components/confirm-dialog/ConfirmDialog\";\nimport { GroupPickerDialog } from \"../components/group/GroupPickerDialog\";\nimport { KeycloakSpinner } from \"../components/keycloak-spinner/KeycloakSpinner\";\nimport { ListEmptyState } from \"../components/list-empty-state/ListEmptyState\";\nimport {\n Action,\n KeycloakDataTable,\n} from \"../components/table-toolbar/KeycloakDataTable\";\nimport { useRealm } from \"../context/realm-context/RealmContext\";\nimport { toUserFederation } from \"../user-federation/routes/UserFederation\";\nimport { useFetch } from \"../utils/useFetch\";\nimport useToggle from \"../utils/useToggle\";\n\nexport const DefaultsGroupsTab = () => {\n const { t } = useTranslation(\"realm-settings\");\n\n const [isKebabOpen, toggleKebab] = useToggle();\n const [isGroupPickerOpen, toggleGroupPicker] = useToggle();\n const [defaultGroups, setDefaultGroups] = useState();\n const [selectedRows, setSelectedRows] = useState([]);\n\n const [key, setKey] = useState(0);\n const [load, setLoad] = useState(0);\n const reload = () => setLoad(load + 1);\n\n const { realm } = useRealm();\n const { addAlert, addError } = useAlerts();\n const { enabled } = useHelp();\n\n useFetch(\n () => adminClient.realms.getDefaultGroups({ realm }),\n (groups) => {\n setDefaultGroups(groups);\n setKey(key + 1);\n },\n [load],\n );\n\n const loader = () => Promise.resolve(defaultGroups!);\n\n const removeGroup = async () => {\n try {\n await Promise.all(\n selectedRows.map((group) =>\n adminClient.realms.removeDefaultGroup({\n realm,\n id: group.id!,\n }),\n ),\n );\n addAlert(\n t(\"groupRemove\", { count: selectedRows.length }),\n AlertVariant.success,\n );\n setSelectedRows([]);\n } catch (error) {\n addError(\"realm-settings:groupRemoveError\", error);\n }\n reload();\n };\n\n const addGroups = async (groups: GroupRepresentation[]) => {\n try {\n await Promise.all(\n groups.map((group) =>\n adminClient.realms.addDefaultGroup({\n realm,\n id: group.id!,\n }),\n ),\n );\n addAlert(\n t(\"defaultGroupAdded\", { count: groups.length }),\n AlertVariant.success,\n );\n } catch (error) {\n addError(\"realm-settings:defaultGroupAddedError\", error);\n }\n reload();\n };\n\n const [toggleRemoveDialog, RemoveDialog] = useConfirmDialog({\n titleKey: t(\"removeConfirmTitle\", { count: selectedRows.length }),\n messageKey: t(\"removeConfirm\", { count: selectedRows.length }),\n continueButtonLabel: \"common:delete\",\n continueButtonVariant: ButtonVariant.danger,\n onConfirm: removeGroup,\n });\n\n if (!defaultGroups) {\n return ;\n }\n\n return (\n <>\n \n {isGroupPickerOpen && (\n {\n addGroups(groups || []);\n toggleGroupPicker();\n }}\n onClose={toggleGroupPicker}\n />\n )}\n {enabled && (\n \n {\" \"}\n .\n \n }\n >\n \n \n {t(\"whatIsDefaultGroups\")}\n \n \n \n )}\n setSelectedRows([...rows])}\n loader={loader}\n ariaLabelKey=\"realm-settings:defaultGroups\"\n searchPlaceholderKey=\"realm-settings:searchForGroups\"\n toolbarItem={\n <>\n \n \n {t(\"addGroups\")}\n \n \n \n \n }\n isOpen={isKebabOpen}\n isPlain\n dropdownItems={[\n {\n toggleRemoveDialog();\n toggleKebab();\n }}\n >\n {t(\"common:remove\")}\n ,\n ]}\n />\n \n \n }\n actions={[\n {\n title: t(\"common:remove\"),\n onRowClick: (group) => {\n setSelectedRows([group]);\n toggleRemoveDialog();\n return Promise.resolve(false);\n },\n } as Action,\n ]}\n columns={[\n {\n name: \"name\",\n displayKey: \"groups:groupName\",\n },\n {\n name: \"path\",\n displayKey: \"groups:path\",\n },\n ]}\n emptyState={\n \n {\" \"}\n \n Add groups...\n \n }\n primaryActionText={t(\"addGroups\")}\n onPrimaryAction={toggleGroupPicker}\n />\n }\n />\n \n );\n};\n","import type RealmRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/realmRepresentation\";\nimport type RoleRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/roleRepresentation\";\nimport { AlertVariant, Tab, Tabs, TabTitleText } from \"@patternfly/react-core\";\nimport { useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { adminClient } from \"../admin-client\";\nimport { useAlerts } from \"../components/alert/Alerts\";\nimport { KeycloakSpinner } from \"../components/keycloak-spinner/KeycloakSpinner\";\nimport { RoleMapping } from \"../components/role-mapping/RoleMapping\";\nimport { useRealm } from \"../context/realm-context/RealmContext\";\nimport { useFetch } from \"../utils/useFetch\";\nimport { DefaultsGroupsTab } from \"./DefaultGroupsTab\";\n\nexport const UserRegistration = () => {\n const { t } = useTranslation(\"realm-settings\");\n const [realm, setRealm] = useState();\n const [activeTab, setActiveTab] = useState(10);\n const [key, setKey] = useState(0);\n\n const { addAlert, addError } = useAlerts();\n const { realm: realmName } = useRealm();\n\n useFetch(\n () => adminClient.realms.findOne({ realm: realmName }),\n setRealm,\n [],\n );\n\n if (!realm) {\n return ;\n }\n\n const addComposites = async (composites: RoleRepresentation[]) => {\n const compositeArray = composites;\n\n try {\n await adminClient.roles.createComposite(\n { roleId: realm.defaultRole!.id!, realm: realmName },\n compositeArray,\n );\n setKey(key + 1);\n addAlert(t(\"roles:addAssociatedRolesSuccess\"), AlertVariant.success);\n } catch (error) {\n addError(\"roles:addAssociatedRolesError\", error);\n }\n };\n\n return (\n setActiveTab(key as number)}\n >\n {t(\"defaultRoles\")}}\n >\n addComposites(rows.map((r) => r.role))}\n />\n \n {t(\"defaultGroups\")}}\n >\n \n \n \n );\n};\n","import { useTranslation } from \"react-i18next\";\nimport { Button, ToolbarItem } from \"@patternfly/react-core\";\n\nimport {\n Action,\n KeycloakDataTable,\n} from \"../../components/table-toolbar/KeycloakDataTable\";\nimport { ListEmptyState } from \"../../components/list-empty-state/ListEmptyState\";\n\nexport type EventType = {\n id: string;\n};\n\ntype EventsTypeTableProps = {\n ariaLabelKey?: string;\n eventTypes: string[];\n addTypes?: () => void;\n onSelect?: (value: EventType[]) => void;\n onDelete?: (value: EventType) => void;\n};\n\nexport function EventsTypeTable({\n ariaLabelKey = \"userEventsRegistered\",\n eventTypes,\n addTypes,\n onSelect,\n onDelete,\n}: EventsTypeTableProps) {\n const { t } = useTranslation(\"realm-settings\");\n\n const data = eventTypes.map((type) => ({\n id: type,\n name: t(`eventTypes.${type}.name`),\n description: t(`eventTypes.${type}.description`),\n }));\n return (\n \n \n \n )\n }\n actions={\n !onDelete\n ? []\n : [\n {\n title: t(\"common:remove\"),\n onRowClick: onDelete,\n } as Action,\n ]\n }\n columns={[\n {\n name: \"name\",\n displayKey: \"realm-settings:eventType\",\n },\n {\n name: \"description\",\n displayKey: \"description\",\n },\n ]}\n emptyState={\n \n }\n />\n );\n}\n","import { useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Button, Modal, ModalVariant } from \"@patternfly/react-core\";\n\nimport { EventsTypeTable, EventType } from \"./EventsTypeTable\";\nimport { useServerInfo } from \"../../context/server-info/ServerInfoProvider\";\n\ntype AddEventTypesDialogProps = {\n onConfirm: (selected: EventType[]) => void;\n onClose: () => void;\n configured: string[];\n};\n\nexport const AddEventTypesDialog = ({\n onConfirm,\n onClose,\n configured,\n}: AddEventTypesDialogProps) => {\n const { t } = useTranslation(\"realm-settings\");\n const { enums } = useServerInfo();\n\n const [selectedTypes, setSelectedTypes] = useState([]);\n return (\n onConfirm(selectedTypes)}\n >\n {t(\"common:add\")}\n ,\n \n {t(\"common:cancel\")}\n ,\n ]}\n >\n setSelectedTypes(selected)}\n eventTypes={enums![\"eventType\"].filter(\n (type) => !configured.includes(type),\n )}\n />\n \n );\n};\n","import {\n ActionGroup,\n Button,\n Divider,\n FormGroup,\n Switch,\n} from \"@patternfly/react-core\";\nimport { Controller, UseFormReturn } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { useConfirmDialog } from \"../../components/confirm-dialog/ConfirmDialog\";\nimport { HelpItem } from \"ui-shared\";\nimport { TimeSelector } from \"../../components/time-selector/TimeSelector\";\n\nexport type EventsType = \"admin\" | \"user\";\n\ntype EventConfigFormProps = {\n type: EventsType;\n form: UseFormReturn;\n reset: () => void;\n clear: () => void;\n};\n\nexport const EventConfigForm = ({\n type,\n form,\n reset,\n clear,\n}: EventConfigFormProps) => {\n const { t } = useTranslation(\"realm-settings\");\n const {\n control,\n watch,\n setValue,\n formState: { isDirty },\n } = form;\n const eventKey = type === \"admin\" ? \"adminEventsEnabled\" : \"eventsEnabled\";\n const eventsEnabled: boolean = watch(eventKey);\n\n const [toggleDisableDialog, DisableConfirm] = useConfirmDialog({\n titleKey: \"realm-settings:events-disable-title\",\n messageKey: \"realm-settings:events-disable-confirm\",\n continueButtonLabel: \"realm-settings:confirm\",\n onConfirm: () => setValue(eventKey, false, { shouldDirty: true }),\n });\n\n return (\n <>\n \n \n }\n >\n (\n {\n if (!value) {\n toggleDisableDialog();\n } else {\n field.onChange(value);\n }\n }}\n aria-label={t(\"saveEvents\")}\n />\n )}\n />\n \n {eventsEnabled && (\n <>\n {type === \"admin\" && (\n \n }\n >\n (\n \n )}\n />\n \n )}\n \n }\n >\n (\n \n )}\n />\n \n \n )}\n \n \n {t(\"common:save\")}\n \n \n \n \n \n }\n >\n clear()}\n >\n {type === \"user\" ? t(\"clearUserEvents\") : t(\"clearAdminEvents\")}\n \n \n \n );\n};\n","import {\n ActionGroup,\n Button,\n FormGroup,\n Select,\n SelectOption,\n SelectVariant,\n} from \"@patternfly/react-core\";\nimport { useState } from \"react\";\nimport { Controller, UseFormReturn } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { HelpItem } from \"ui-shared\";\nimport { useServerInfo } from \"../../context/server-info/ServerInfoProvider\";\n\ntype EventListenersFormProps = {\n form: UseFormReturn;\n reset: () => void;\n};\n\nexport const EventListenersForm = ({\n form,\n reset,\n}: EventListenersFormProps) => {\n const { t } = useTranslation(\"realm-settings\");\n const {\n control,\n formState: { isDirty },\n } = form;\n\n const [selectEventListenerOpen, setSelectEventListenerOpen] = useState(false);\n const serverInfo = useServerInfo();\n const eventListeners = serverInfo.providers?.eventsListener.providers;\n\n return (\n <>\n \n }\n >\n (\n setSelectEventListenerOpen(isOpen)}\n selections={field.value}\n onSelect={(_, selectedValue) => {\n const option = selectedValue.toString();\n const changedValue = field.value.includes(option)\n ? field.value.filter((item: string) => item !== option)\n : [...field.value, option];\n field.onChange(changedValue);\n }}\n onClear={(operation) => {\n operation.stopPropagation();\n field.onChange([]);\n }}\n isOpen={selectEventListenerOpen}\n aria-labelledby={\"eventsListeners\"}\n >\n {Object.keys(eventListeners!).map((event) => (\n \n ))}\n \n )}\n />\n \n \n \n {t(\"common:save\")}\n \n \n {t(\"common:revert\")}\n \n \n \n );\n};\n","import type { RealmEventsConfigRepresentation } from \"@keycloak/keycloak-admin-client/lib/defs/realmEventsConfigRepresentation\";\nimport type RealmRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/realmRepresentation\";\nimport {\n AlertVariant,\n ButtonVariant,\n PageSection,\n Tab,\n Tabs,\n TabTitleText,\n} from \"@patternfly/react-core\";\nimport { isEqual } from \"lodash-es\";\nimport { useState } from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { adminClient } from \"../../admin-client\";\nimport { useAlerts } from \"../../components/alert/Alerts\";\nimport { useConfirmDialog } from \"../../components/confirm-dialog/ConfirmDialog\";\nimport { FormAccess } from \"../../components/form/FormAccess\";\nimport { useRealm } from \"../../context/realm-context/RealmContext\";\nimport { convertToFormValues } from \"../../util\";\nimport { useFetch } from \"../../utils/useFetch\";\nimport { AddEventTypesDialog } from \"./AddEventTypesDialog\";\nimport { EventConfigForm, EventsType } from \"./EventConfigForm\";\nimport { EventListenersForm } from \"./EventListenersForm\";\nimport { EventsTypeTable, EventType } from \"./EventsTypeTable\";\n\ntype EventsTabProps = {\n realm: RealmRepresentation;\n};\n\ntype EventsConfigForm = RealmEventsConfigRepresentation & {\n adminEventsExpiration?: number;\n};\n\nexport const EventsTab = ({ realm }: EventsTabProps) => {\n const { t } = useTranslation(\"realm-settings\");\n const form = useForm();\n const { setValue, handleSubmit } = form;\n\n const [key, setKey] = useState(0);\n const refresh = () => setKey(new Date().getTime());\n const [tableKey, setTableKey] = useState(0);\n const reload = () => setTableKey(new Date().getTime());\n\n const [activeTab, setActiveTab] = useState(\"event\");\n const [events, setEvents] = useState();\n const [type, setType] = useState();\n const [addEventType, setAddEventType] = useState(false);\n\n const { addAlert, addError } = useAlerts();\n const { realm: realmName } = useRealm();\n\n const setupForm = (eventConfig?: EventsConfigForm) => {\n setEvents(eventConfig);\n convertToFormValues(eventConfig || {}, setValue);\n };\n\n const clear = async (type: EventsType) => {\n setType(type);\n toggleDeleteDialog();\n };\n\n const [toggleDeleteDialog, DeleteConfirm] = useConfirmDialog({\n titleKey: \"realm-settings:deleteEvents\",\n messageKey: \"realm-settings:deleteEventsConfirm\",\n continueButtonLabel: \"common:clear\",\n continueButtonVariant: ButtonVariant.danger,\n onConfirm: async () => {\n try {\n switch (type) {\n case \"admin\":\n await adminClient.realms.clearAdminEvents({ realm: realmName });\n break;\n case \"user\":\n await adminClient.realms.clearEvents({ realm: realmName });\n break;\n }\n addAlert(t(`${type}-events-cleared`), AlertVariant.success);\n } catch (error) {\n addError(`realm-settings:${type}-events-cleared-error`, error);\n }\n },\n });\n\n useFetch(\n () => adminClient.realms.getConfigEvents({ realm: realmName }),\n (eventConfig) => {\n setupForm({\n ...eventConfig,\n adminEventsExpiration: realm.attributes?.adminEventsExpiration,\n });\n reload();\n },\n [key],\n );\n\n const save = async (config: EventsConfigForm) => {\n const updatedEventListener = !isEqual(\n events?.eventsListeners,\n config.eventsListeners,\n );\n\n const { adminEventsExpiration, ...eventConfig } = config;\n if (realm.attributes?.adminEventsExpiration !== adminEventsExpiration) {\n await adminClient.realms.update(\n { realm: realmName },\n {\n ...realm,\n attributes: { ...(realm.attributes || {}), adminEventsExpiration },\n },\n );\n }\n\n try {\n await adminClient.realms.updateConfigEvents(\n { realm: realmName },\n eventConfig,\n );\n setupForm({ ...events, ...eventConfig, adminEventsExpiration });\n addAlert(\n updatedEventListener\n ? t(\"realm-settings:saveEventListenersSuccess\")\n : t(\"realm-settings:eventConfigSuccessfully\"),\n AlertVariant.success,\n );\n } catch (error) {\n addError(\n updatedEventListener\n ? t(\"realm-settings:saveEventListenersError\")\n : t(\"realm-settings:eventConfigError\"),\n error,\n );\n }\n };\n\n const addEventTypes = async (eventTypes: EventType[]) => {\n const eventsTypes = eventTypes.map((type) => type.id);\n const enabledEvents = events!.enabledEventTypes?.concat(eventsTypes);\n await addEvents(enabledEvents);\n };\n\n const addEvents = async (events: string[] = []) => {\n const eventConfig = { ...form.getValues(), enabledEventTypes: events };\n await save(eventConfig);\n setAddEventType(false);\n refresh();\n };\n\n return (\n <>\n \n {addEventType && (\n addEventTypes(eventTypes)}\n configured={events?.enabledEventTypes || []}\n onClose={() => setAddEventType(false)}\n />\n )}\n setActiveTab(key as string)}\n >\n {t(\"eventListeners\")}}\n data-testid=\"rs-event-listeners-tab\"\n >\n \n \n setupForm(events)} />\n \n \n \n {t(\"userEventsSettings\")}}\n data-testid=\"rs-events-tab\"\n >\n \n \n setupForm(events)}\n clear={() => clear(\"user\")}\n />\n \n \n \n setAddEventType(true)}\n eventTypes={events?.enabledEventTypes || []}\n onDelete={(value) => {\n const enabledEventTypes = events?.enabledEventTypes?.filter(\n (e) => e !== value.id,\n );\n addEvents(enabledEventTypes);\n setEvents({ ...events, enabledEventTypes });\n }}\n />\n \n \n {t(\"adminEventsSettings\")}}\n data-testid=\"rs-admin-events-tab\"\n >\n \n \n setupForm(events)}\n clear={() => clear(\"admin\")}\n />\n \n \n \n \n \n );\n};\n","import type ComponentRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/componentRepresentation\";\nimport type { KeyMetadataRepresentation } from \"@keycloak/keycloak-admin-client/lib/defs/keyMetadataRepresentation\";\nimport {\n Button,\n ButtonVariant,\n PageSection,\n Select,\n SelectOption,\n SelectVariant,\n} from \"@patternfly/react-core\";\nimport { FilterIcon } from \"@patternfly/react-icons\";\nimport { cellWidth } from \"@patternfly/react-table\";\nimport { useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useNavigate } from \"react-router-dom\";\n\nimport { adminClient } from \"../../admin-client\";\nimport { useConfirmDialog } from \"../../components/confirm-dialog/ConfirmDialog\";\nimport { KeycloakSpinner } from \"../../components/keycloak-spinner/KeycloakSpinner\";\nimport { ListEmptyState } from \"../../components/list-empty-state/ListEmptyState\";\nimport { KeycloakDataTable } from \"../../components/table-toolbar/KeycloakDataTable\";\nimport { useRealm } from \"../../context/realm-context/RealmContext\";\nimport { emptyFormatter } from \"../../util\";\nimport { useFetch } from \"../../utils/useFetch\";\nimport useToggle from \"../../utils/useToggle\";\nimport { toKeysTab } from \"../routes/KeysTab\";\n\nimport \"../realm-settings-section.css\";\n\nconst FILTER_OPTIONS = [\"ACTIVE\", \"PASSIVE\", \"DISABLED\"] as const;\ntype FilterType = (typeof FILTER_OPTIONS)[number];\n\ntype KeyData = KeyMetadataRepresentation & {\n provider?: string;\n};\n\ntype KeysListTabProps = {\n realmComponents: ComponentRepresentation[];\n};\n\ntype SelectFilterProps = {\n onFilter: (filter: FilterType) => void;\n};\n\nconst SelectFilter = ({ onFilter }: SelectFilterProps) => {\n const { t } = useTranslation(\"realm-settings\");\n const [filterType, setFilterType] = useState(FILTER_OPTIONS[0]);\n\n const [filterDropdownOpen, toggleFilter] = useToggle();\n return (\n }\n onSelect={(_, value) => {\n const filter =\n FILTER_OPTIONS.find((o) => o === value.toString()) ||\n FILTER_OPTIONS[0];\n setFilterType(filter);\n onFilter(filter);\n toggleFilter();\n }}\n selections={filterType}\n >\n {FILTER_OPTIONS.map((option) => (\n \n {t(`keysFilter.${option}`)}\n \n ))}\n \n );\n};\n\nexport const KeysListTab = ({ realmComponents }: KeysListTabProps) => {\n const { t } = useTranslation(\"realm-settings\");\n const navigate = useNavigate();\n\n const [publicKey, setPublicKey] = useState(\"\");\n const [certificate, setCertificate] = useState(\"\");\n\n const { realm } = useRealm();\n\n const [keyData, setKeyData] = useState();\n const [filteredKeyData, setFilteredKeyData] = useState();\n\n useFetch(\n async () => {\n const keysMetaData = await adminClient.realms.getKeys({ realm });\n return keysMetaData.keys?.map((key) => {\n const provider = realmComponents.find(\n (component: ComponentRepresentation) =>\n component.id === key.providerId,\n );\n return { ...key, provider: provider?.name } as KeyData;\n })!;\n },\n setKeyData,\n [],\n );\n\n const [togglePublicKeyDialog, PublicKeyDialog] = useConfirmDialog({\n titleKey: t(\"publicKeys\").slice(0, -1),\n messageKey: publicKey,\n continueButtonLabel: \"common:close\",\n continueButtonVariant: ButtonVariant.primary,\n onConfirm: () => Promise.resolve(),\n });\n\n const [toggleCertificateDialog, CertificateDialog] = useConfirmDialog({\n titleKey: t(\"certificate\"),\n messageKey: certificate,\n continueButtonLabel: \"common:close\",\n continueButtonVariant: ButtonVariant.primary,\n onConfirm: () => Promise.resolve(),\n });\n\n if (!keyData) {\n return ;\n }\n\n return (\n \n \n \n \n setFilteredKeyData(\n filterType !== FILTER_OPTIONS[0]\n ? keyData!.filter(({ status }) => status === filterType)\n : undefined,\n )\n }\n />\n }\n canSelectAll\n columns={[\n {\n name: \"algorithm\",\n displayKey: \"realm-settings:algorithm\",\n cellFormatters: [emptyFormatter()],\n transforms: [cellWidth(15)],\n },\n {\n name: \"type\",\n displayKey: \"type\",\n cellFormatters: [emptyFormatter()],\n transforms: [cellWidth(10)],\n },\n {\n name: \"kid\",\n displayKey: \"realm-settings:kid\",\n cellFormatters: [emptyFormatter()],\n transforms: [cellWidth(10)],\n },\n {\n name: \"use\",\n displayKey: \"realm-settings:use\",\n cellFormatters: [emptyFormatter()],\n transforms: [cellWidth(10)],\n },\n {\n name: \"provider\",\n displayKey: \"realm-settings:provider\",\n cellRenderer: ({ provider }: KeyData) => provider || \"\",\n cellFormatters: [emptyFormatter()],\n transforms: [cellWidth(10)],\n },\n {\n name: \"publicKeys\",\n displayKey: \"realm-settings:publicKeys\",\n cellRenderer: ({ type, publicKey, certificate }: KeyData) => {\n if (type === \"EC\") {\n return (\n {\n togglePublicKeyDialog();\n setPublicKey(publicKey!);\n }}\n variant=\"secondary\"\n id=\"kc-public-key\"\n >\n {t(\"publicKeys\").slice(0, -1)}\n \n );\n } else if (type === \"RSA\") {\n return (\n
\n {\n togglePublicKeyDialog();\n setPublicKey(publicKey!);\n }}\n variant=\"secondary\"\n id={publicKey}\n >\n {t(\"publicKeys\").slice(0, -1)}\n \n {\n toggleCertificateDialog();\n setCertificate(certificate!);\n }}\n variant=\"secondary\"\n id={certificate}\n className=\"kc-certificate\"\n >\n {t(\"certificate\")}\n \n
\n );\n } else return \"\";\n },\n cellFormatters: [],\n transforms: [cellWidth(20)],\n },\n ]}\n isSearching={!!filteredKeyData}\n emptyState={\n \n navigate(toKeysTab({ realm, tab: \"providers\" }))\n }\n />\n }\n />\n
\n );\n};\n","import { Modal, ModalVariant } from \"@patternfly/react-core\";\nimport { useTranslation } from \"react-i18next\";\nimport { KeyProviderForm } from \"./KeyProviderForm\";\nimport type { ProviderType } from \"../../routes/KeyProvider\";\n\ntype KeyProviderModalProps = {\n providerType: ProviderType;\n onClose: () => void;\n};\n\nexport const KeyProviderModal = ({\n providerType,\n onClose,\n}: KeyProviderModalProps) => {\n const { t } = useTranslation(\"realm-settings\");\n return (\n \n \n \n );\n};\n","import {\n DataList,\n DataListCell,\n DataListItem,\n DataListItemCells,\n DataListItemRow,\n Modal,\n} from \"@patternfly/react-core\";\nimport { useTranslation } from \"react-i18next\";\nimport { useServerInfo } from \"../../../context/server-info/ServerInfoProvider\";\nimport { KEY_PROVIDER_TYPE } from \"../../../util\";\n\ntype KeyProvidersPickerProps = {\n onConfirm: (provider: string) => void;\n onClose: () => void;\n};\n\nexport const KeyProvidersPicker = ({\n onConfirm,\n onClose,\n}: KeyProvidersPickerProps) => {\n const { t } = useTranslation(\"realm-settings\");\n const serverInfo = useServerInfo();\n const keyProviderComponentTypes =\n serverInfo.componentTypes?.[KEY_PROVIDER_TYPE] ?? [];\n return (\n \n {\n onConfirm(id);\n }}\n aria-label={t(\"addPredefinedMappers\")}\n isCompact\n >\n {keyProviderComponentTypes.map((provider) => (\n \n \n \n {provider.id}\n ,\n \n {provider.helpText}\n ,\n ]}\n />\n \n \n ))}\n \n \n );\n};\n","import type ComponentRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/componentRepresentation\";\nimport type ComponentTypeRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/componentTypeRepresentation\";\nimport type { KeyMetadataRepresentation } from \"@keycloak/keycloak-admin-client/lib/defs/keyMetadataRepresentation\";\nimport {\n AlertVariant,\n Button,\n ButtonVariant,\n InputGroup,\n PageSection,\n TextInput,\n Toolbar,\n ToolbarGroup,\n ToolbarItem,\n} from \"@patternfly/react-core\";\nimport { SearchIcon } from \"@patternfly/react-icons\";\nimport { KeyboardEvent, useMemo, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Link } from \"react-router-dom\";\n\nimport { adminClient } from \"../../admin-client\";\nimport { DraggableTable } from \"../../authentication/components/DraggableTable\";\nimport { useAlerts } from \"../../components/alert/Alerts\";\nimport { useConfirmDialog } from \"../../components/confirm-dialog/ConfirmDialog\";\nimport { useRealm } from \"../../context/realm-context/RealmContext\";\nimport { useServerInfo } from \"../../context/server-info/ServerInfoProvider\";\nimport { KEY_PROVIDER_TYPE } from \"../../util\";\nimport useToggle from \"../../utils/useToggle\";\nimport { ProviderType, toKeyProvider } from \"../routes/KeyProvider\";\nimport { KeyProviderModal } from \"./key-providers/KeyProviderModal\";\nimport { KeyProvidersPicker } from \"./key-providers/KeyProvidersPicker\";\n\nimport \"../realm-settings-section.css\";\n\ntype ComponentData = KeyMetadataRepresentation & {\n id?: string;\n providerDescription?: string;\n name?: string;\n toggleHidden?: boolean;\n config?: any;\n parentId?: string;\n};\n\ntype KeysProvidersTabProps = {\n realmComponents: ComponentRepresentation[];\n refresh: () => void;\n};\n\nexport const KeysProvidersTab = ({\n realmComponents,\n refresh,\n}: KeysProvidersTabProps) => {\n const { t } = useTranslation(\"realm-settings\");\n const { addAlert, addError } = useAlerts();\n const { realm } = useRealm();\n\n const [searchVal, setSearchVal] = useState(\"\");\n const [filteredComponents, setFilteredComponents] = useState(\n [],\n );\n\n const [isCreateModalOpen, handleModalToggle] = useToggle();\n const serverInfo = useServerInfo();\n const keyProviderComponentTypes =\n serverInfo.componentTypes?.[KEY_PROVIDER_TYPE] ?? [];\n\n const [providerOpen, toggleProviderOpen] = useToggle();\n const [defaultUIDisplayName, setDefaultUIDisplayName] =\n useState();\n\n const [selectedComponent, setSelectedComponent] =\n useState();\n\n const components = useMemo(\n () =>\n realmComponents.map((component) => {\n const provider = keyProviderComponentTypes.find(\n (componentType: ComponentTypeRepresentation) =>\n component.providerId === componentType.id,\n );\n\n return {\n ...component,\n providerDescription: provider?.helpText,\n };\n }),\n [realmComponents],\n );\n\n const [toggleDeleteDialog, DeleteConfirm] = useConfirmDialog({\n titleKey: \"realm-settings:deleteProviderTitle\",\n messageKey: t(\"deleteProviderConfirm\", {\n provider: selectedComponent?.name,\n }),\n continueButtonLabel: \"common:delete\",\n continueButtonVariant: ButtonVariant.danger,\n onConfirm: async () => {\n try {\n await adminClient.components.del({\n id: selectedComponent!.id!,\n realm: realm,\n });\n\n refresh();\n\n addAlert(t(\"deleteProviderSuccess\"), AlertVariant.success);\n } catch (error) {\n addError(\"realm-settings:deleteProviderError\", error);\n }\n },\n });\n\n const onSearch = () => {\n if (searchVal !== \"\") {\n setSearchVal(searchVal);\n const filteredComponents = components.filter(\n (component) =>\n component.name?.includes(searchVal) ||\n component.providerId?.includes(searchVal),\n );\n setFilteredComponents(filteredComponents);\n } else {\n setSearchVal(\"\");\n setFilteredComponents(components);\n }\n };\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === \"Enter\") {\n onSearch();\n }\n };\n\n const handleInputChange = (value: string) => {\n setSearchVal(value);\n };\n\n return (\n <>\n {providerOpen && (\n toggleProviderOpen()}\n onConfirm={(provider) => {\n handleModalToggle();\n setDefaultUIDisplayName(provider as ProviderType);\n toggleProviderOpen();\n }}\n />\n )}\n {isCreateModalOpen && defaultUIDisplayName && (\n {\n handleModalToggle();\n refresh();\n }}\n />\n )}\n \n \n \n \n \n \n \n \n \n \n \n \n \n toggleProviderOpen()}\n >\n {t(\"addProvider\")}\n \n \n \n \n {\n const updateAll = components.map((component: ComponentData) => {\n const componentToSave = { ...component };\n delete componentToSave.providerDescription;\n\n return adminClient.components.update(\n { id: component.id! },\n {\n ...componentToSave,\n config: {\n priority: [\n (\n itemOrder.length -\n itemOrder.indexOf(component.id!) +\n 100\n ).toString(),\n ],\n },\n },\n );\n });\n\n try {\n await Promise.all(updateAll);\n refresh();\n addAlert(t(\"saveProviderListSuccess\"), AlertVariant.success);\n } catch (error) {\n addError(\"realm-settings:saveProviderError\", error);\n }\n }}\n columns={[\n {\n name: \"name\",\n displayKey: \"realm-settings:name\",\n cellRenderer: (component) => (\n \n {component.name}\n \n ),\n },\n {\n name: \"providerId\",\n displayKey: \"realm-settings:provider\",\n },\n {\n name: \"providerDescription\",\n displayKey: \"realm-settings:providerDescription\",\n },\n ]}\n actions={[\n {\n title: t(\"common:delete\"),\n onClick: (_key, _idx, component) => {\n setSelectedComponent(component as ComponentRepresentation);\n toggleDeleteDialog();\n },\n },\n ]}\n />\n \n \n );\n};\n","import type ComponentRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/componentRepresentation\";\nimport { Tab, TabTitleText } from \"@patternfly/react-core\";\nimport { useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { adminClient } from \"../../admin-client\";\nimport { KeycloakSpinner } from \"../../components/keycloak-spinner/KeycloakSpinner\";\nimport {\n RoutableTabs,\n useRoutableTab,\n} from \"../../components/routable-tabs/RoutableTabs\";\nimport { useRealm } from \"../../context/realm-context/RealmContext\";\nimport { KEY_PROVIDER_TYPE } from \"../../util\";\nimport { useFetch } from \"../../utils/useFetch\";\nimport { KeySubTab, toKeysTab } from \"../routes/KeysTab\";\nimport { KeysListTab } from \"./KeysListTab\";\nimport { KeysProvidersTab } from \"./KeysProvidersTab\";\n\nconst sortByPriority = (components: ComponentRepresentation[]) => {\n const sortedComponents = [...components].sort((a, b) => {\n const priorityA = Number(a.config?.priority);\n const priorityB = Number(b.config?.priority);\n\n return (\n (!isNaN(priorityB) ? priorityB : 0) - (!isNaN(priorityA) ? priorityA : 0)\n );\n });\n\n return sortedComponents;\n};\n\nexport const KeysTab = () => {\n const { t } = useTranslation(\"realm-settings\");\n\n const { realm: realmName } = useRealm();\n\n const [realmComponents, setRealmComponents] =\n useState();\n const [key, setKey] = useState(0);\n const refresh = () => {\n setKey(key + 1);\n };\n\n useFetch(\n () =>\n adminClient.components.find({\n type: KEY_PROVIDER_TYPE,\n realm: realmName,\n }),\n (components) => setRealmComponents(sortByPriority(components)),\n [key],\n );\n\n const useTab = (tab: KeySubTab) =>\n useRoutableTab(toKeysTab({ realm: realmName, tab }));\n\n const listTab = useTab(\"list\");\n const providersTab = useTab(\"providers\");\n\n if (!realmComponents) {\n return ;\n }\n\n return (\n \n {t(\"keysList\")}}\n {...listTab}\n >\n \n \n {t(\"providers\")}}\n {...providersTab}\n >\n \n \n \n );\n};\n","import { FormGroup } from \"@patternfly/react-core\";\nimport { useFormContext } from \"react-hook-form\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport { FormattedLink } from \"../../components/external-link/FormattedLink\";\nimport { HelpItem } from \"ui-shared\";\nimport { KeycloakTextInput } from \"../../components/keycloak-text-input/KeycloakTextInput\";\n\ntype HelpLinkTextInputProps = {\n fieldName: string;\n url: string;\n};\n\nexport const HelpLinkTextInput = ({\n fieldName,\n url,\n}: HelpLinkTextInputProps) => {\n const { t } = useTranslation(\"realm-settings\");\n const { register } = useFormContext();\n const name = fieldName.substr(fieldName.indexOf(\".\") + 1);\n return (\n \n Default value prevents pages from being included\n \n \n }\n fieldLabelId={name}\n />\n }\n >\n \n \n );\n};\n","import { useEffect } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { FormProvider, useForm } from \"react-hook-form\";\nimport { ActionGroup, Button } from \"@patternfly/react-core\";\n\nimport type RealmRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/realmRepresentation\";\nimport { FormAccess } from \"../../components/form/FormAccess\";\nimport { HelpLinkTextInput } from \"./HelpLinkTextInput\";\nimport { convertToFormValues } from \"../../util\";\n\nimport \"./security-defences.css\";\n\ntype HeadersFormProps = {\n realm: RealmRepresentation;\n save: (realm: RealmRepresentation) => void;\n};\n\nexport const HeadersForm = ({ realm, save }: HeadersFormProps) => {\n const { t } = useTranslation();\n const form = useForm();\n const {\n setValue,\n formState: { isDirty },\n handleSubmit,\n } = form;\n\n const setupForm = () => convertToFormValues(realm, setValue);\n useEffect(setupForm, []);\n\n return (\n \n \n \n \n \n \n \n \n \n \n\n \n \n {t(\"common:save\")}\n \n \n \n \n \n );\n};\n","import { FormGroup, ValidatedOptions } from \"@patternfly/react-core\";\nimport { CSSProperties } from \"react\";\nimport { Controller, useFormContext } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { HelpItem } from \"ui-shared\";\nimport { TimeSelector } from \"../../components/time-selector/TimeSelector\";\n\nexport const Time = ({\n name,\n style,\n}: {\n name: string;\n style?: CSSProperties;\n}) => {\n const { t } = useTranslation(\"realm-settings\");\n const {\n control,\n formState: { errors },\n } = useFormContext();\n return (\n \n }\n validated={\n errors[name] ? ValidatedOptions.error : ValidatedOptions.default\n }\n helperTextInvalid={t(\"common:required\")}\n >\n (\n \n )}\n />\n \n );\n};\n","import type RealmRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/realmRepresentation\";\nimport {\n ActionGroup,\n Button,\n FormGroup,\n NumberInput,\n Switch,\n} from \"@patternfly/react-core\";\nimport { useEffect } from \"react\";\nimport { Controller, FormProvider, useForm, useWatch } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { FormAccess } from \"../../components/form/FormAccess\";\nimport { HelpItem } from \"ui-shared\";\nimport { convertToFormValues } from \"../../util\";\nimport { Time } from \"./Time\";\n\ntype BruteForceDetectionProps = {\n realm: RealmRepresentation;\n save: (realm: RealmRepresentation) => void;\n};\n\nexport const BruteForceDetection = ({\n realm,\n save,\n}: BruteForceDetectionProps) => {\n const { t } = useTranslation(\"realm-settings\");\n const form = useForm();\n const {\n setValue,\n handleSubmit,\n control,\n formState: { isDirty },\n } = form;\n\n const enable = useWatch({\n control,\n name: \"bruteForceProtected\",\n });\n\n const permanentLockout = useWatch({\n control,\n name: \"permanentLockout\",\n });\n\n const setupForm = () => convertToFormValues(realm, setValue);\n useEffect(setupForm, []);\n\n return (\n \n \n \n (\n \n )}\n />\n \n {enable && (\n <>\n \n }\n fieldId=\"failureFactor\"\n >\n (\n field.onChange(field.value + 1)}\n onMinus={() => field.onChange(field.value - 1)}\n onChange={(event) =>\n field.onChange(\n Number((event.target as HTMLInputElement).value),\n )\n }\n />\n )}\n />\n \n \n (\n \n )}\n />\n \n\n {!permanentLockout && (\n <>\n \n );\n};\n","import { useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { PageSection, Tab, Tabs, TabTitleText } from \"@patternfly/react-core\";\n\nimport type RealmRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/realmRepresentation\";\nimport { HeadersForm } from \"./HeadersForm\";\nimport { BruteForceDetection } from \"./BruteForceDetection\";\n\ntype SecurityDefensesProps = {\n realm: RealmRepresentation;\n save: (realm: RealmRepresentation) => void;\n};\n\nexport const SecurityDefenses = ({ realm, save }: SecurityDefensesProps) => {\n const { t } = useTranslation(\"realm-settings\");\n const [activeTab, setActiveTab] = useState(10);\n return (\n setActiveTab(key as number)}\n >\n {t(\"headers\")}}\n >\n \n \n \n \n {t(\"bruteForceDetection\")}}\n >\n \n \n \n \n \n );\n};\n","import type { UserProfileGroup } from \"@keycloak/keycloak-admin-client/lib/defs/userProfileConfig\";\nimport {\n Button,\n ButtonVariant,\n PageSection,\n ToolbarItem,\n} from \"@patternfly/react-core\";\nimport { useEffect, useState } from \"react\";\nimport { Trans, useTranslation } from \"react-i18next\";\nimport { Link, useNavigate } from \"react-router-dom\";\nimport { useConfirmDialog } from \"../../components/confirm-dialog/ConfirmDialog\";\nimport { ListEmptyState } from \"../../components/list-empty-state/ListEmptyState\";\nimport {\n Action,\n KeycloakDataTable,\n} from \"../../components/table-toolbar/KeycloakDataTable\";\nimport { useRealm } from \"../../context/realm-context/RealmContext\";\nimport { toEditAttributesGroup } from \"../routes/EditAttributesGroup\";\nimport { toNewAttributesGroup } from \"../routes/NewAttributesGroup\";\nimport { useUserProfile } from \"./UserProfileContext\";\n\nexport const AttributesGroupTab = () => {\n const { config, save } = useUserProfile();\n const { t } = useTranslation(\"realm-settings\");\n const navigate = useNavigate();\n const { realm } = useRealm();\n const [key, setKey] = useState(0);\n const [groupToDelete, setGroupToDelete] = useState();\n\n // Refresh data in table when config changes.\n useEffect(() => setKey((value) => value + 1), [config]);\n\n async function loader() {\n return config?.groups ?? [];\n }\n\n const [toggleDeleteDialog, DeleteConfirm] = useConfirmDialog({\n titleKey: \"realm-settings:deleteDialogTitle\",\n children: (\n \n {\" \"}\n {{ group: groupToDelete?.name }}.\n \n ),\n continueButtonLabel: \"common:delete\",\n continueButtonVariant: ButtonVariant.danger,\n onConfirm() {\n const groups = (config?.groups ?? []).filter(\n (group) => group !== groupToDelete,\n );\n\n save(\n { ...config, groups },\n {\n successMessageKey: \"realm-settings:deleteSuccess\",\n errorMessageKey: \"realm-settings:deleteAttributeGroupError\",\n },\n );\n },\n });\n\n function deleteAttributeGroup(group: UserProfileGroup) {\n setGroupToDelete(group);\n toggleDeleteDialog();\n }\n\n return (\n \n \n \n (\n \n )}\n >\n {t(\"createGroupText\")}\n \n \n }\n columns={[\n {\n name: \"name\",\n displayKey: \"realm-settings:columnName\",\n cellRenderer: (group) => (\n \n {group.name}\n \n ),\n },\n {\n name: \"displayHeader\",\n displayKey: \"realm-settings:columnDisplayName\",\n },\n {\n name: \"displayDescription\",\n displayKey: \"realm-settings:columnDisplayDescription\",\n },\n ]}\n actions={[\n {\n title: t(\"common:delete\"),\n onRowClick: deleteAttributeGroup,\n } as Action,\n ]}\n emptyState={\n navigate(toNewAttributesGroup({ realm }))}\n />\n }\n />\n \n );\n};\n","import { useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport {\n Button,\n ButtonVariant,\n Divider,\n Select,\n SelectOption,\n SelectVariant,\n Toolbar,\n ToolbarContent,\n ToolbarItem,\n} from \"@patternfly/react-core\";\nimport { FilterIcon } from \"@patternfly/react-icons\";\n\nimport { KeycloakSpinner } from \"../../components/keycloak-spinner/KeycloakSpinner\";\nimport { DraggableTable } from \"../../authentication/components/DraggableTable\";\nimport { Link, useNavigate } from \"react-router-dom\";\nimport { toAddAttribute } from \"../routes/AddAttribute\";\nimport { useRealm } from \"../../context/realm-context/RealmContext\";\nimport { useUserProfile } from \"./UserProfileContext\";\nimport { useConfirmDialog } from \"../../components/confirm-dialog/ConfirmDialog\";\nimport { toAttribute } from \"../routes/Attribute\";\nimport type { UserProfileAttribute } from \"@keycloak/keycloak-admin-client/lib/defs/userProfileConfig\";\nimport useToggle from \"../../utils/useToggle\";\n\nconst RESTRICTED_ATTRIBUTES = [\"username\", \"email\"];\n\ntype movedAttributeType = UserProfileAttribute;\n\nexport const AttributesTab = () => {\n const { config, save } = useUserProfile();\n const { realm: realmName } = useRealm();\n const { t } = useTranslation(\"realm-settings\");\n const navigate = useNavigate();\n const [filter, setFilter] = useState(\"allGroups\");\n const [isFilterTypeDropdownOpen, toggleIsFilterTypeDropdownOpen] =\n useToggle();\n const [data, setData] = useState(config?.attributes);\n const [attributeToDelete, setAttributeToDelete] = useState(\"\");\n\n const executeMove = async (\n attribute: UserProfileAttribute,\n newIndex: number,\n ) => {\n const fromIndex = config?.attributes!.findIndex((attr) => {\n return attr.name === attribute.name;\n });\n\n let movedAttribute: movedAttributeType = {};\n movedAttribute = config?.attributes![fromIndex!]!;\n config?.attributes!.splice(fromIndex!, 1);\n config?.attributes!.splice(newIndex, 0, movedAttribute);\n\n save(\n { attributes: config?.attributes!, groups: config?.groups },\n {\n successMessageKey: \"realm-settings:updatedUserProfileSuccess\",\n errorMessageKey: \"realm-settings:updatedUserProfileError\",\n },\n );\n };\n\n const updatedAttributes = config?.attributes!.filter(\n (attribute) => attribute.name !== attributeToDelete,\n );\n\n const [toggleDeleteDialog, DeleteConfirm] = useConfirmDialog({\n titleKey: t(\"deleteAttributeConfirmTitle\"),\n messageKey: t(\"deleteAttributeConfirm\", {\n attributeName: attributeToDelete,\n }),\n continueButtonLabel: t(\"common:delete\"),\n continueButtonVariant: ButtonVariant.danger,\n onConfirm: async () => {\n save(\n { attributes: updatedAttributes!, groups: config?.groups },\n {\n successMessageKey: \"realm-settings:deleteAttributeSuccess\",\n errorMessageKey: \"realm-settings:deleteAttributeError\",\n },\n );\n setAttributeToDelete(\"\");\n },\n });\n\n const cellFormatter = (row: UserProfileAttribute) => (\n \n {row.name}\n \n );\n\n if (!config?.attributes) {\n return ;\n }\n\n return (\n <>\n \n \n \n }\n onSelect={(_, value) => {\n const filter = value.toString();\n setFilter(filter);\n setData(\n filter === \"allGroups\"\n ? config.attributes\n : config.attributes?.filter(\n (attr) => attr.group === filter,\n ),\n );\n toggleIsFilterTypeDropdownOpen();\n }}\n selections={filter === \"allGroups\" ? t(filter) : filter}\n >\n {[\n \n {t(\"allGroups\")}\n ,\n ...config\n .attributes!.filter((attr) => !!attr.group)\n .map((attr) => (\n \n )),\n ]}\n \n \n \n (\n \n )}\n >\n {t(\"createAttribute\")}\n \n \n \n \n \n \n {\n const keys = config.attributes!.map((e) => e.name);\n const newIndex = items.indexOf(nameDragged);\n const oldIndex = keys.indexOf(nameDragged);\n const dragged = config.attributes![oldIndex];\n if (!dragged.name) return;\n\n executeMove(dragged, newIndex);\n }}\n actions={[\n {\n title: t(\"common:edit\"),\n onClick: (_key, _idx, component) => {\n navigate(\n toAttribute({\n realm: realmName,\n attributeName: component.name,\n }),\n );\n },\n },\n {\n title: t(\"common:delete\"),\n isActionable: ({ name }) => !RESTRICTED_ATTRIBUTES.includes(name!),\n onClick: (_key, _idx, component) => {\n setAttributeToDelete(component.name);\n toggleDeleteDialog();\n },\n },\n ]}\n columns={[\n {\n name: \"name\",\n displayKey: t(\"attributeName\"),\n cellRenderer: cellFormatter,\n },\n {\n name: \"displayName\",\n displayKey: t(\"attributeDisplayName\"),\n },\n {\n name: \"group\",\n displayKey: t(\"attributeGroup\"),\n },\n ]}\n data={data || config.attributes}\n />\n \n );\n};\n","import { CodeEditor, Language } from \"@patternfly/react-code-editor\";\nimport { ActionGroup, Button, Form, PageSection } from \"@patternfly/react-core\";\nimport type { editor } from \"monaco-editor\";\nimport { useEffect, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useAlerts } from \"../../components/alert/Alerts\";\nimport { prettyPrintJSON } from \"../../util\";\nimport { useUserProfile } from \"./UserProfileContext\";\n\nexport const JsonEditorTab = () => {\n const { config, save, isSaving } = useUserProfile();\n const { t } = useTranslation();\n const { addError } = useAlerts();\n const [editor, setEditor] = useState();\n\n useEffect(() => resetCode(), [config, editor]);\n\n function resetCode() {\n editor?.setValue(config ? prettyPrintJSON(config) : \"\");\n }\n\n async function handleSave() {\n const value = editor?.getValue();\n\n if (!value) {\n return;\n }\n\n try {\n await save(JSON.parse(value));\n } catch (error) {\n addError(\"realm-settings:invalidJsonError\", error);\n return;\n }\n }\n\n return (\n \n setEditor(editor)}\n isLanguageLabelVisible\n />\n
\n \n \n {t(\"common:save\")}\n \n \n \n
\n
\n );\n};\n","import { Tab, TabTitleText } from \"@patternfly/react-core\";\n\nimport { useTranslation } from \"react-i18next\";\nimport {\n RoutableTabs,\n useRoutableTab,\n} from \"../../components/routable-tabs/RoutableTabs\";\nimport { useRealm } from \"../../context/realm-context/RealmContext\";\nimport {\n toUserProfile,\n UserProfileTab as IUserProfileTab,\n} from \"../routes/UserProfile\";\nimport { AttributesGroupTab } from \"./AttributesGroupTab\";\nimport { AttributesTab } from \"./AttributesTab\";\nimport { JsonEditorTab } from \"./JsonEditorTab\";\nimport { UserProfileProvider } from \"./UserProfileContext\";\n\nexport const UserProfileTab = () => {\n const { realm } = useRealm();\n const { t } = useTranslation(\"realm-settings\");\n\n const useTab = (tab: IUserProfileTab) =>\n useRoutableTab(toUserProfile({ realm, tab }));\n\n const attributesTab = useTab(\"attributes\");\n const attributesGroupTab = useTab(\"attributes-group\");\n const jsonEditorTab = useTab(\"json-editor\");\n\n return (\n \n \n {t(\"attributes\")}}\n data-testid=\"attributesTab\"\n {...attributesTab}\n >\n \n \n {t(\"attributesGroup\")}}\n data-testid=\"attributesGroupTab\"\n {...attributesGroupTab}\n >\n \n \n {t(\"jsonEditor\")}}\n data-testid=\"jsonEditorTab\"\n {...jsonEditorTab}\n >\n \n \n \n \n );\n};\n","import type RealmRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/realmRepresentation\";\nimport {\n AlertVariant,\n ButtonVariant,\n DropdownItem,\n DropdownSeparator,\n PageSection,\n Tab,\n TabTitleText,\n Tooltip,\n} from \"@patternfly/react-core\";\nimport { useEffect, useState } from \"react\";\nimport { Controller, useForm } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\nimport { useNavigate } from \"react-router-dom\";\n\nimport { adminClient } from \"../admin-client\";\nimport { useAlerts } from \"../components/alert/Alerts\";\nimport { useConfirmDialog } from \"../components/confirm-dialog/ConfirmDialog\";\nimport type { KeyValueType } from \"../components/key-value-form/key-value-convert\";\nimport {\n RoutableTabs,\n useRoutableTab,\n} from \"../components/routable-tabs/RoutableTabs\";\nimport { ViewHeader } from \"../components/view-header/ViewHeader\";\nimport { useRealms } from \"../context/RealmsContext\";\nimport { useRealm } from \"../context/realm-context/RealmContext\";\nimport { toDashboard } from \"../dashboard/routes/Dashboard\";\nimport environment from \"../environment\";\nimport helpUrls from \"../help-urls\";\nimport { convertFormValuesToObject, convertToFormValues } from \"../util\";\nimport useIsFeatureEnabled, { Feature } from \"../utils/useIsFeatureEnabled\";\nimport { RealmSettingsEmailTab } from \"./EmailTab\";\nimport { RealmSettingsGeneralTab } from \"./GeneralTab\";\nimport { LocalizationTab } from \"./LocalizationTab\";\nimport { RealmSettingsLoginTab } from \"./LoginTab\";\nimport { PartialExportDialog } from \"./PartialExport\";\nimport { PartialImportDialog } from \"./PartialImport\";\nimport { PoliciesTab } from \"./PoliciesTab\";\nimport ProfilesTab from \"./ProfilesTab\";\nimport { RealmSettingsSessionsTab } from \"./SessionsTab\";\nimport { RealmSettingsThemesTab } from \"./ThemesTab\";\nimport { RealmSettingsTokensTab } from \"./TokensTab\";\nimport { UserRegistration } from \"./UserRegistration\";\nimport { EventsTab } from \"./event-config/EventsTab\";\nimport { KeysTab } from \"./keys/KeysTab\";\nimport { ClientPoliciesTab, toClientPolicies } from \"./routes/ClientPolicies\";\nimport { RealmSettingsTab, toRealmSettings } from \"./routes/RealmSettings\";\nimport { SecurityDefenses } from \"./security-defences/SecurityDefenses\";\nimport { UserProfileTab } from \"./user-profile/UserProfileTab\";\n\ntype RealmSettingsHeaderProps = {\n onChange: (value: boolean) => void;\n value: boolean;\n save: () => void;\n realmName: string;\n refresh: () => void;\n};\n\nconst RealmSettingsHeader = ({\n save,\n onChange,\n value,\n realmName,\n refresh,\n}: RealmSettingsHeaderProps) => {\n const { t } = useTranslation(\"realm-settings\");\n const { refresh: refreshRealms } = useRealms();\n const { addAlert, addError } = useAlerts();\n const navigate = useNavigate();\n const [partialImportOpen, setPartialImportOpen] = useState(false);\n const [partialExportOpen, setPartialExportOpen] = useState(false);\n\n const [toggleDisableDialog, DisableConfirm] = useConfirmDialog({\n titleKey: \"realm-settings:disableConfirmTitle\",\n messageKey: \"realm-settings:disableConfirm\",\n continueButtonLabel: \"common:disable\",\n onConfirm: () => {\n onChange(!value);\n save();\n },\n });\n\n const [toggleDeleteDialog, DeleteConfirm] = useConfirmDialog({\n titleKey: \"realm-settings:deleteConfirmTitle\",\n messageKey: \"realm-settings:deleteConfirm\",\n continueButtonLabel: \"common:delete\",\n continueButtonVariant: ButtonVariant.danger,\n onConfirm: async () => {\n try {\n await adminClient.realms.del({ realm: realmName });\n addAlert(t(\"deletedSuccess\"), AlertVariant.success);\n await refreshRealms();\n navigate(toDashboard({ realm: environment.masterRealm }));\n refresh();\n } catch (error) {\n addError(\"realm-settings:deleteError\", error);\n }\n },\n });\n\n return (\n <>\n \n \n setPartialImportOpen(!partialImportOpen)}\n />\n setPartialExportOpen(false)}\n />\n {\n setPartialImportOpen(true);\n }}\n >\n {t(\"partialImport\")}\n ,\n setPartialExportOpen(true)}\n >\n {t(\"partialExport\")}\n ,\n ,\n \n {t(\"common:delete\")}\n ,\n ]}\n isEnabled={value}\n onToggle={(value) => {\n if (!value) {\n toggleDisableDialog();\n } else {\n onChange(value);\n save();\n }\n }}\n />\n \n );\n};\n\ntype RealmSettingsTabsProps = {\n realm: RealmRepresentation;\n refresh: () => void;\n};\n\nexport const RealmSettingsTabs = ({\n realm,\n refresh,\n}: RealmSettingsTabsProps) => {\n const { t } = useTranslation(\"realm-settings\");\n const { addAlert, addError } = useAlerts();\n const { realm: realmName } = useRealm();\n const { refresh: refreshRealms } = useRealms();\n const navigate = useNavigate();\n const isFeatureEnabled = useIsFeatureEnabled();\n\n const { control, setValue, getValues } = useForm({\n mode: \"onChange\",\n });\n const [key, setKey] = useState(0);\n\n const refreshHeader = () => {\n setKey(key + 1);\n };\n\n const setupForm = (r: RealmRepresentation = realm) => {\n convertToFormValues(r, setValue);\n };\n\n useEffect(setupForm, []);\n\n const save = async (r: RealmRepresentation) => {\n r = convertFormValuesToObject(r);\n if (\n r.attributes?.[\"acr.loa.map\"] &&\n typeof r.attributes[\"acr.loa.map\"] !== \"string\"\n ) {\n r.attributes[\"acr.loa.map\"] = JSON.stringify(\n Object.fromEntries(\n (r.attributes[\"acr.loa.map\"] as KeyValueType[])\n .filter(({ key }) => key !== \"\")\n .map(({ key, value }) => [key, value]),\n ),\n );\n }\n\n try {\n const savedRealm: RealmRepresentation = {\n ...realm,\n ...r,\n id: r.realm,\n };\n\n // For the default value, null is expected instead of an empty string.\n if (savedRealm.smtpServer?.port === \"\") {\n savedRealm.smtpServer = { ...savedRealm.smtpServer, port: null };\n }\n await adminClient.realms.update({ realm: realmName }, savedRealm);\n addAlert(t(\"saveSuccess\"), AlertVariant.success);\n } catch (error) {\n addError(\"realm-settings:saveError\", error);\n }\n\n const isRealmRenamed = realmName !== (r.realm || realm.realm);\n if (isRealmRenamed) {\n await refreshRealms();\n navigate(toRealmSettings({ realm: r.realm!, tab: \"general\" }));\n }\n refresh();\n };\n\n const useTab = (tab: RealmSettingsTab) =>\n useRoutableTab(toRealmSettings({ realm: realmName, tab }));\n\n const generalTab = useTab(\"general\");\n const loginTab = useTab(\"login\");\n const emailTab = useTab(\"email\");\n const themesTab = useTab(\"themes\");\n const keysTab = useTab(\"keys\");\n const eventsTab = useTab(\"events\");\n const localizationTab = useTab(\"localization\");\n const securityDefensesTab = useTab(\"security-defenses\");\n const sessionsTab = useTab(\"sessions\");\n const tokensTab = useTab(\"tokens\");\n const clientPoliciesTab = useTab(\"client-policies\");\n const userProfileTab = useTab(\"user-profile\");\n const userRegistrationTab = useTab(\"user-registration\");\n\n const useClientPoliciesTab = (tab: ClientPoliciesTab) =>\n useRoutableTab(\n toClientPolicies({\n realm: realmName,\n tab,\n }),\n );\n\n const clientPoliciesProfilesTab = useClientPoliciesTab(\"profiles\");\n const clientPoliciesPoliciesTab = useClientPoliciesTab(\"policies\");\n\n return (\n <>\n (\n save(getValues())}\n />\n )}\n />\n \n \n {t(\"general\")}}\n data-testid=\"rs-general-tab\"\n {...generalTab}\n >\n \n \n {t(\"login\")}}\n data-testid=\"rs-login-tab\"\n {...loginTab}\n >\n \n \n {t(\"email\")}}\n data-testid=\"rs-email-tab\"\n {...emailTab}\n >\n \n \n {t(\"themes\")}}\n data-testid=\"rs-themes-tab\"\n {...themesTab}\n >\n \n \n {t(\"realm-settings:keys\")}}\n data-testid=\"rs-keys-tab\"\n {...keysTab}\n >\n \n \n {t(\"events\")}}\n data-testid=\"rs-realm-events-tab\"\n {...eventsTab}\n >\n \n \n {t(\"localization\")}}\n data-testid=\"rs-localization-tab\"\n {...localizationTab}\n >\n \n \n {t(\"securityDefences\")}}\n data-testid=\"rs-security-defenses-tab\"\n {...securityDefensesTab}\n >\n \n \n {t(\"realm-settings:sessions\")}}\n data-testid=\"rs-sessions-tab\"\n {...sessionsTab}\n >\n \n \n {t(\"realm-settings:tokens\")}}\n data-testid=\"rs-tokens-tab\"\n {...tokensTab}\n >\n \n \n {isFeatureEnabled(Feature.ClientPolicies) && (\n \n {t(\"realm-settings:clientPolicies\")}\n \n }\n data-testid=\"rs-clientPolicies-tab\"\n {...clientPoliciesTab}\n >\n \n {t(\"profiles\")}}\n tooltip={\n \n }\n {...clientPoliciesProfilesTab}\n >\n \n \n {t(\"policies\")}}\n tooltip={\n \n }\n >\n \n \n \n \n )}\n {isFeatureEnabled(Feature.DeclarativeUserProfile) &&\n realm.attributes?.userProfileEnabled === \"true\" && (\n {t(\"realm-settings:userProfile\")}\n }\n data-testid=\"rs-user-profile-tab\"\n {...userProfileTab}\n >\n \n \n )}\n {t(\"userRegistration\")}}\n data-testid=\"rs-userRegistration-tab\"\n {...userRegistrationTab}\n >\n \n \n \n \n \n );\n};\n","import type RealmRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/realmRepresentation\";\nimport { useState } from \"react\";\n\nimport { adminClient } from \"../admin-client\";\nimport { KeycloakSpinner } from \"../components/keycloak-spinner/KeycloakSpinner\";\nimport { useFetch } from \"../utils/useFetch\";\nimport { useParams } from \"../utils/useParams\";\nimport { RealmSettingsTabs } from \"./RealmSettingsTabs\";\nimport type { RealmSettingsParams } from \"./routes/RealmSettings\";\n\nexport default function RealmSettingsSection() {\n const { realm: realmName } = useParams();\n const [realm, setRealm] = useState();\n const [key, setKey] = useState(0);\n\n const refresh = () => {\n setKey(key + 1);\n setRealm(undefined);\n };\n\n useFetch(() => adminClient.realms.findOne({ realm: realmName }), setRealm, [\n key,\n ]);\n\n if (!realm) {\n return ;\n }\n return ;\n}\n"],"names":["uniqWith","array","comparator","baseUniq","EditableTextCell","value","rowIndex","cellIndex","props","handleTextInputChange","inputAriaLabel","isDisabled","React.createElement","React.Fragment","inlineStyles","TextInput","newValue","event","css","formStyles","useCurrentUser","whoAmI","useWhoAmI","currentUser","setCurrentUser","useState","userId","useFetch","adminClient","RealmSettingsEmailTab","realm","save","useTranslation","realmName","useRealm","addAlert","addError","useAlerts","register","control","handleSubmit","watch","resetForm","getValues","errors","useForm","reset","watchFromValue","watchHostValue","isTesting","toggleTest","useToggle","authenticationEnabled","useWatch","testConnection","toNumber","toBoolean","valueMapper","serverSettings","key","mapperFn","AlertVariant","error","jsxs","PageSection","jsx","FormPanel","FormAccess","FormGroup","KeycloakTextInput","emailRegexPattern","HelpItem","Controller","field","Checkbox","Switch","Fragment","PasswordInput","Alert","AlertActionLink","Link","toUser","ActionGroup","ActionListItem","Button","RealmSettingsGeneralTab","form","setValue","isDirty","isFeatureEnabled","useIsFeatureEnabled","open","setOpen","requireSslTypes","setupForm","convertToFormValues","result","convertAttributeNameToForm","useEffect","ClipboardCopy","Select","_","SelectVariant","sslType","SelectOption","FormProvider","KeyValueInput","Feature","Stack","StackItem","FormattedLink","addTrailingSlash","AddMessageBundleModal","handleModalToggle","t","Modal","ModalVariant","ButtonVariant","Form","ValidatedOptions","localeToDisplayName","locale","LocalizationTab","addMessageBundleModalOpen","setAddMessageBundleModalOpen","supportedLocalesOpen","setSupportedLocalesOpen","defaultLocaleOpen","setDefaultLocaleOpen","filterDropdownOpen","setFilterDropdownOpen","selectMenuLocale","setSelectMenuLocale","DEFAULT_LOCALE","formState","selectMenuValueSelected","setSelectMenuValueSelected","messageBundles","setMessageBundles","tableRows","setTableRows","themeTypes","useServerInfo","allLocales","useMemo","locales","theme","bundleForm","currentRealm","defaultSupportedLocales","watchSupportedLocales","internationalizationEnabled","tableKey","setTableKey","max","setMax","first","setFirst","filter","setFilter","refreshTable","searchInBundles","idx","i","filtered","isEqual","bundles","updatedRows","messageBundle","evt","prev","newRows","cloneDeep","textCell","updateEditableRows","type","validationErrors","newRow","invalid","validateCellEdits","cancelCellEdits","applyCellEdits","options","SelectGroup","Divider","addKeyValue","pair","deleteKey","v","option","item","TextContent","PaginatingTableToolbar","search","ToolbarItem","isExpanded","ListEmptyState","SearchIcon","Table","TableVariant","_b","validation","row","TableHeader","TableBody","RealmSettingsLoginTab","refresh","updateSwitchValue","switches","name","s","PartialExportDialog","isOpen","onClose","exportGroupsAndRoles","setExportGroupsAndRoles","exportClients","setExportClients","isExporting","setIsExporting","showWarning","exportRealm","realmExport","saveAs","prettyPrintJSON","Text","INITIAL_RESOURCES","PartialImportDialog","importedFile","setImportedFile","isFileSelected","isRealmSelectOpen","setIsRealmSelectOpen","isCollisionSelectOpen","setIsCollisionSelectOpen","importInProgress","setImportInProgress","collisionOption","setCollisionOption","targetRealm","setTargetRealm","importResponse","setImportResponse","resourcesToImport","setResourcesToImport","isAnyResourceChecked","checked","resetResourcesToImport","resetInputState","handleFileChange","handleRealmSelect","handleResourceCheckBox","resource","realmSelectOptions","realms","handleCollisionSelect","collisionOptions","targetHasResources","targetHasResource","targetHasRealmRoles","targetHasClientRoles","itemCount","clientRolesCount","clientRoles","total","role","resourceDataListItem","resourceDisplayName","DataListItem","DataListItemRow","DataListItemCells","DataListCell","jsonForImport","jsonToImport","doImport","importResults","importModal","JsonFileUpload","DataList","importCompleteMessage","loader","last","ActionLabel","importRecord","Label","TypeRenderer","typeMap","importCompletedModal","KeycloakDataTable","PoliciesTab","navigate","useNavigate","show","setShow","policies","setPolicies","selectedPolicy","setSelectedPolicy","setKey","code","setCode","tablePolicies","setTablePolicies","saveStatus","switchValues","updatedPolicies","policy","enabled","toClientPolicies","ClientPolicyDetailLink","toEditClientPolicy","SwitchRenderer","clientPolicy","toggleDisableDialog","DisableConfirm","useConfirmDialog","obj","toggleDeleteDialog","DeleteConfirm","Flex","FlexItem","Title","Radio","CodeEditor","Language","toAddClientPolicy","KeycloakSpinner","ProfilesTab","tableProfiles","setTableProfiles","globalProfiles","setGlobalProfiles","selectedProfile","setSelectedProfile","allProfiles","profiles","allClientProfiles","normalizeProfile","profile","omit","updatedProfiles","cellFormatter","toClientProfile","changedProfiles","changedGlobalProfiles","toAddClientProfile","RealmSettingsSessionsTab","offlineSessionMaxEnabled","TimeSelector","RealmSettingsThemesTab","loginThemeOpen","setLoginThemeOpen","accountThemeOpen","setAccountThemeOpen","adminUIThemeOpen","setAdminUIThemeOpen","emailThemeOpen","setEmailThemeOpen","RealmSettingsTokensTab","serverInfo","defaultSigAlgDrpdwnIsOpen","setDefaultSigAlgDrpdwnOpen","defaultSigAlgOptions","sortProviders","ssoSessionIdleTimeout","revokeRefreshToken","p","NumberInput","toHumanFormat","TextVariants","DefaultsGroupsTab","isKebabOpen","toggleKebab","isGroupPickerOpen","toggleGroupPicker","defaultGroups","setDefaultGroups","selectedRows","setSelectedRows","load","setLoad","reload","useHelp","groups","removeGroup","group","addGroups","toggleRemoveDialog","RemoveDialog","GroupPickerDialog","Popover","Trans","toUserFederation","QuestionCircleIcon","rows","Dropdown","KebabToggle","DropdownItem","UserRegistration","setRealm","activeTab","setActiveTab","addComposites","composites","compositeArray","Tabs","Tab","TabTitleText","RoleMapping","r","EventsTypeTable","ariaLabelKey","eventTypes","addTypes","onSelect","onDelete","data","AddEventTypesDialog","onConfirm","configured","enums","selectedTypes","setSelectedTypes","selected","EventConfigForm","clear","eventKey","eventsEnabled","EventListenersForm","selectEventListenerOpen","setSelectEventListenerOpen","eventListeners","selectedValue","changedValue","operation","EventsTab","events","setEvents","setType","addEventType","setAddEventType","eventConfig","config","updatedEventListener","adminEventsExpiration","addEventTypes","eventsTypes","enabledEvents","addEvents","enabledEventTypes","e","FILTER_OPTIONS","SelectFilter","onFilter","filterType","setFilterType","toggleFilter","FilterIcon","o","KeysListTab","realmComponents","publicKey","setPublicKey","certificate","setCertificate","keyData","setKeyData","filteredKeyData","setFilteredKeyData","provider","component","togglePublicKeyDialog","PublicKeyDialog","toggleCertificateDialog","CertificateDialog","status","emptyFormatter","cellWidth","toKeysTab","KeyProviderModal","providerType","KeyProviderForm","KeyProvidersPicker","keyProviderComponentTypes","KEY_PROVIDER_TYPE","id","KeysProvidersTab","searchVal","setSearchVal","filteredComponents","setFilteredComponents","isCreateModalOpen","providerOpen","toggleProviderOpen","defaultUIDisplayName","setDefaultUIDisplayName","selectedComponent","setSelectedComponent","components","componentType","onSearch","handleKeyDown","handleInputChange","Toolbar","ToolbarGroup","InputGroup","DraggableTable","itemOrder","updateAll","componentToSave","toKeyProvider","_key","_idx","sortByPriority","a","b","priorityA","priorityB","KeysTab","setRealmComponents","useTab","tab","useRoutableTab","listTab","providersTab","RoutableTabs","HelpLinkTextInput","fieldName","url","useFormContext","HeadersForm","Time","style","BruteForceDetection","enable","permanentLockout","SecurityDefenses","AttributesGroupTab","useUserProfile","groupToDelete","setGroupToDelete","deleteAttributeGroup","toNewAttributesGroup","toEditAttributesGroup","RESTRICTED_ATTRIBUTES","AttributesTab","isFilterTypeDropdownOpen","toggleIsFilterTypeDropdownOpen","setData","attributeToDelete","setAttributeToDelete","executeMove","attribute","newIndex","fromIndex","attr","movedAttribute","updatedAttributes","toAttribute","ToolbarContent","toAddAttribute","nameDragged","items","keys","oldIndex","dragged","JsonEditorTab","isSaving","editor","setEditor","resetCode","handleSave","UserProfileTab","toUserProfile","attributesTab","attributesGroupTab","jsonEditorTab","UserProfileProvider","RealmSettingsHeader","onChange","refreshRealms","useRealms","partialImportOpen","setPartialImportOpen","partialExportOpen","setPartialExportOpen","toDashboard","environment","ViewHeader","helpUrls","DropdownSeparator","RealmSettingsTabs","refreshHeader","convertFormValuesToObject","savedRealm","toRealmSettings","generalTab","loginTab","emailTab","themesTab","keysTab","eventsTab","localizationTab","securityDefensesTab","sessionsTab","tokensTab","clientPoliciesTab","userProfileTab","userRegistrationTab","useClientPoliciesTab","clientPoliciesProfilesTab","clientPoliciesPoliciesTab","Tooltip","RealmSettingsSection","useParams"],"mappings":"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","x_google_ignoreList":[0,1]}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy