@keycloakify/keycloak-admin-ui
Version:
Repackaged Keycloak Admin UI
36 lines • 4.15 kB
JavaScript
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