UNPKG

@keycloakify/keycloak-admin-ui

Version:
36 lines 4.15 kB
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime"; import { Button, FormGroup, Switch } from "@patternfly/react-core"; import { Controller } from "react-hook-form"; import { useTranslation } from "react-i18next"; import { HelpItem } from "../../ui-shared"; import { useAdminClient } from "../../admin-client"; import { useAlerts } from "../../ui-shared"; import { FormAccess } from "../../components/form/FormAccess"; import { WizardSectionHeader } from "../../components/wizard-section-header/WizardSectionHeader"; import { useRealm } from "../../context/realm-context/RealmContext"; import { convertFormToSettings } from "../../user-federation/ldap/LdapSettingsConnection"; const PASSWORD_MODIFY_OID = "1.3.6.1.4.1.4203.1.11.1"; export const LdapSettingsAdvanced = ({ id, form, showSectionHeading = false, showSectionDescription = false, }) => { const { adminClient } = useAdminClient(); const { t } = useTranslation(); const { realm } = useRealm(); const { addAlert, addError } = useAlerts(); const testLdap = async () => { if (!(await form.trigger())) return; try { const settings = convertFormToSettings(form); const ldapOids = await adminClient.realms.ldapServerCapabilities({ realm }, { ...settings, componentId: id }); addAlert(t("testSuccess")); const passwordModifyOid = ldapOids.filter((id) => id.oid === PASSWORD_MODIFY_OID); form.setValue("config.usePasswordModifyExtendedOp", [ (passwordModifyOid.length > 0).toString(), ]); } catch (error) { addError("testError", error); } }; return (_jsxs(_Fragment, { children: [showSectionHeading && (_jsx(WizardSectionHeader, { title: t("advancedSettings"), description: t("ldapAdvancedSettingsDescription"), showDescription: showSectionDescription })), _jsxs(FormAccess, { role: "manage-realm", isHorizontal: true, children: [_jsx(FormGroup, { label: t("enableLdapv3Password"), labelIcon: _jsx(HelpItem, { helpText: t("enableLdapv3PasswordHelp"), fieldLabelId: "enableLdapv3Password" }), fieldId: "kc-enable-ldapv3-password", hasNoPaddingTop: true, children: _jsx(Controller, { name: "config.usePasswordModifyExtendedOp", defaultValue: ["false"], control: form.control, render: ({ field }) => (_jsx(Switch, { id: "kc-enable-ldapv3-password", "data-testid": "ldapv3-password", isDisabled: false, onChange: (_event, value) => field.onChange([`${value}`]), isChecked: field.value[0] === "true", label: t("on"), labelOff: t("off"), "aria-label": t("enableLdapv3Password") })) }) }), _jsx(FormGroup, { label: t("validatePasswordPolicy"), labelIcon: _jsx(HelpItem, { helpText: t("validatePasswordPolicyHelp"), fieldLabelId: "validatePasswordPolicy" }), fieldId: "kc-validate-password-policy", hasNoPaddingTop: true, children: _jsx(Controller, { name: "config.validatePasswordPolicy", defaultValue: ["false"], control: form.control, render: ({ field }) => (_jsx(Switch, { id: "kc-validate-password-policy", "data-testid": "password-policy", isDisabled: false, onChange: (_event, value) => field.onChange([`${value}`]), isChecked: field.value[0] === "true", label: t("on"), labelOff: t("off"), "aria-label": t("validatePasswordPolicy") })) }) }), _jsx(FormGroup, { label: t("trustEmail"), labelIcon: _jsx(HelpItem, { helpText: t("trustEmailHelp"), fieldLabelId: "trustEmail" }), fieldId: "kc-trust-email", hasNoPaddingTop: true, children: _jsx(Controller, { name: "config.trustEmail", defaultValue: ["false"], control: form.control, render: ({ field }) => (_jsx(Switch, { id: "kc-trust-email", "data-testid": "trust-email", isDisabled: false, onChange: (_event, value) => field.onChange([`${value}`]), isChecked: field.value[0] === "true", label: t("on"), labelOff: t("off"), "aria-label": t("trustEmail") })) }) }), _jsx(FormGroup, { fieldId: "query-extensions", children: _jsx(Button, { variant: "secondary", id: "query-extensions", "data-testid": "query-extensions", onClick: testLdap, children: t("queryExtensions") }) })] })] })); }; //# sourceMappingURL=LdapSettingsAdvanced.js.map