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

theme.keycloak.v2.admin.resources.assets.LdapMapperDetails-e770e524.js.map Maven / Gradle / Ivy

There is a newer version: 25.0.1
Show newest version
{"version":3,"file":"LdapMapperDetails-e770e524.js","sources":["../../src/user-federation/ldap/mappers/LdapMapperDetails.tsx"],"sourcesContent":["import type ComponentRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/componentRepresentation\";\nimport type ComponentTypeRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/componentTypeRepresentation\";\nimport { DirectionType } from \"@keycloak/keycloak-admin-client/lib/resources/userStorageProvider\";\nimport {\n  ActionGroup,\n  AlertVariant,\n  Button,\n  ButtonVariant,\n  DropdownItem,\n  Form,\n  FormGroup,\n  PageSection,\n  Select,\n  SelectOption,\n  SelectVariant,\n  ValidatedOptions,\n} from \"@patternfly/react-core\";\nimport { useState } from \"react\";\nimport { Controller, FormProvider, useForm, useWatch } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\nimport { useNavigate } from \"react-router-dom\";\nimport { HelpItem } from \"ui-shared\";\n\nimport { adminClient } from \"../../../admin-client\";\nimport { useAlerts } from \"../../../components/alert/Alerts\";\nimport { useConfirmDialog } from \"../../../components/confirm-dialog/ConfirmDialog\";\nimport { DynamicComponents } from \"../../../components/dynamic/DynamicComponents\";\nimport { FormAccess } from \"../../../components/form/FormAccess\";\nimport { KeycloakSpinner } from \"../../../components/keycloak-spinner/KeycloakSpinner\";\nimport { KeycloakTextInput } from \"../../../components/keycloak-text-input/KeycloakTextInput\";\nimport { ViewHeader } from \"../../../components/view-header/ViewHeader\";\nimport { useRealm } from \"../../../context/realm-context/RealmContext\";\nimport { convertFormValuesToObject, convertToFormValues } from \"../../../util\";\nimport { useFetch } from \"../../../utils/useFetch\";\nimport { useParams } from \"../../../utils/useParams\";\nimport { toUserFederationLdap } from \"../../routes/UserFederationLdap\";\nimport { UserFederationLdapMapperParams } from \"../../routes/UserFederationLdapMapper\";\n\nexport default function LdapMapperDetails() {\n  const form = useForm();\n  const [mapping, setMapping] = useState();\n  const [components, setComponents] = useState();\n\n  const { id, mapperId } = useParams();\n  const navigate = useNavigate();\n  const { realm } = useRealm();\n  const { t } = useTranslation(\"user-federation\");\n  const { addAlert, addError } = useAlerts();\n\n  const [isMapperDropdownOpen, setIsMapperDropdownOpen] = useState(false);\n  const [key, setKey] = useState(0);\n  const refresh = () => setKey(key + 1);\n\n  useFetch(\n    async () => {\n      const components = await adminClient.components.listSubComponents({\n        id,\n        type: \"org.keycloak.storage.ldap.mappers.LDAPStorageMapper\",\n      });\n      if (mapperId && mapperId !== \"new\") {\n        const fetchedMapper = await adminClient.components.findOne({\n          id: mapperId,\n        });\n        return { components, fetchedMapper };\n      }\n      return { components };\n    },\n    ({ components, fetchedMapper }) => {\n      setMapping(fetchedMapper);\n      setComponents(components);\n      if (mapperId !== \"new\" && !fetchedMapper)\n        throw new Error(t(\"common:notFound\"));\n\n      if (fetchedMapper) setupForm(fetchedMapper);\n    },\n    []\n  );\n\n  const setupForm = (mapper: ComponentRepresentation) => {\n    convertToFormValues(mapper, form.setValue);\n  };\n\n  const save = async (mapper: ComponentRepresentation) => {\n    const component: ComponentRepresentation =\n      convertFormValuesToObject(mapper);\n    const map = {\n      ...component,\n      config: Object.entries(component.config || {}).reduce(\n        (result, [key, value]) => {\n          result[key] = Array.isArray(value) ? value : [value];\n          return result;\n        },\n        {} as Record\n      ),\n    };\n\n    try {\n      if (mapperId === \"new\") {\n        await adminClient.components.create(map);\n        navigate(\n          toUserFederationLdap({ realm, id: mapper.parentId!, tab: \"mappers\" })\n        );\n      } else {\n        await adminClient.components.update({ id: mapperId }, map);\n      }\n      setupForm(map as ComponentRepresentation);\n      addAlert(\n        t(\n          mapperId === \"new\"\n            ? \"common:mappingCreatedSuccess\"\n            : \"common:mappingUpdatedSuccess\"\n        ),\n        AlertVariant.success\n      );\n    } catch (error) {\n      addError(\n        mapperId === \"new\"\n          ? \"common:mappingCreatedError\"\n          : \"common:mappingUpdatedError\",\n        error\n      );\n    }\n  };\n\n  const sync = async (direction: DirectionType) => {\n    try {\n      const result = await adminClient.userStorageProvider.mappersSync({\n        parentId: mapping?.parentId || \"\",\n        id: mapperId,\n        direction,\n      });\n      addAlert(\n        t(\"syncLDAPGroupsSuccessful\", {\n          result: result.status,\n        })\n      );\n    } catch (error) {\n      addError(\"user-federation:syncLDAPGroupsError\", error);\n    }\n    refresh();\n  };\n\n  const [toggleDeleteDialog, DeleteConfirm] = useConfirmDialog({\n    titleKey: \"common:deleteMappingTitle\",\n    messageKey: \"common:deleteMappingConfirm\",\n    continueButtonLabel: \"common:delete\",\n    continueButtonVariant: ButtonVariant.danger,\n    onConfirm: async () => {\n      try {\n        await adminClient.components.del({\n          id: mapping!.id!,\n        });\n        addAlert(t(\"common:mappingDeletedSuccess\"), AlertVariant.success);\n        navigate(toUserFederationLdap({ id, realm, tab: \"mappers\" }));\n      } catch (error) {\n        addError(\"common:mappingDeletedError\", error);\n      }\n    },\n  });\n\n  const mapperType = useWatch({\n    control: form.control,\n    name: \"providerId\",\n  });\n\n  if (!components) {\n    return ;\n  }\n\n  const isNew = mapperId === \"new\";\n  const mapper = components.find((c) => c.id === mapperType);\n  return (\n    <>\n      \n      \n                  {t(\"common:delete\")}\n                ,\n                ...(mapper?.metadata.fedToKeycloakSyncSupported\n                  ? [\n                       sync(\"fedToKeycloak\")}\n                      >\n                        {t(mapper?.metadata.fedToKeycloakSyncMessage)}\n                      ,\n                    ]\n                  : []),\n                ...(mapper?.metadata.keycloakToFedSyncSupported\n                  ? [\n                       {\n                          sync(\"keycloakToFed\");\n                        }}\n                      >\n                        {t(mapper?.metadata.keycloakToFedSyncMessage)}\n                      ,\n                    ]\n                  : []),\n              ]\n        }\n      />\n      \n        \n          {!isNew && (\n            \n              \n            \n          )}\n          \n            }\n            fieldId=\"kc-ldap-mapper-name\"\n            isRequired\n          >\n            \n            \n            \n          \n          {!isNew ? (\n            \n              }\n              fieldId=\"kc-ldap-mapper-type\"\n              isRequired\n            >\n              \n            \n          ) : (\n            \n              }\n              fieldId=\"kc-providerId\"\n              isRequired\n            >\n               (\n                  \n                      setIsMapperDropdownOpen(!isMapperDropdownOpen)\n                    }\n                    isOpen={isMapperDropdownOpen}\n                    onSelect={(_, value) => {\n                      field.onChange(value as string);\n                      setIsMapperDropdownOpen(false);\n                    }}\n                    selections={field.value}\n                    variant={SelectVariant.typeahead}\n                  >\n                    {components.map((c) => (\n                      \n                    ))}\n                  \n                )}\n              >\n            \n          )}\n          \n            {!!mapperType && (\n              \n            )}\n          \n        \n\n        
save(form.getValues()))}>\n \n \n {t(\"common:save\")}\n \n \n isNew\n ? navigate(-1)\n : navigate(\n `/${realm}/user-federation/ldap/${\n mapping!.parentId\n }/mappers`\n )\n }\n data-testid=\"ldap-mapper-cancel\"\n >\n {t(\"common:cancel\")}\n \n \n
\n
\n \n );\n}\n"],"names":["LdapMapperDetails","form","useForm","mapping","setMapping","useState","components","setComponents","id","mapperId","useParams","navigate","useNavigate","realm","useRealm","useTranslation","addAlert","addError","useAlerts","isMapperDropdownOpen","setIsMapperDropdownOpen","key","setKey","refresh","useFetch","adminClient","fetchedMapper","setupForm","mapper","save","component","convertFormValuesToObject","map","result","value","toUserFederationLdap","AlertVariant","error","sync","direction","toggleDeleteDialog","DeleteConfirm","useConfirmDialog","ButtonVariant","mapperType","useWatch","KeycloakSpinner","isNew","c","jsxs","Fragment","jsx","ViewHeader","DropdownItem","PageSection","FormAccess","FormGroup","KeycloakTextInput","HelpItem","ValidatedOptions","Controller","field","Select","_","SelectVariant","SelectOption","FormProvider","DynamicComponents","Form","ActionGroup","Button"],"mappings":"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"}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy