keycloak-scim/src/user-federation/ldap/LdapSettingsAdvanced.tsx
2021-12-14 15:56:36 +01:00

120 lines
3.8 KiB
TypeScript

import { FormGroup, Switch } from "@patternfly/react-core";
import { useTranslation } from "react-i18next";
import React from "react";
import { HelpItem } from "../../components/help-enabler/HelpItem";
import { UseFormMethods, Controller } from "react-hook-form";
import { FormAccess } from "../../components/form-access/FormAccess";
import { WizardSectionHeader } from "../../components/wizard-section-header/WizardSectionHeader";
export type LdapSettingsAdvancedProps = {
form: UseFormMethods;
showSectionHeading?: boolean;
showSectionDescription?: boolean;
};
export const LdapSettingsAdvanced = ({
form,
showSectionHeading = false,
showSectionDescription = false,
}: LdapSettingsAdvancedProps) => {
const { t } = useTranslation("user-federation");
const { t: helpText } = useTranslation("user-federation-help");
return (
<>
{showSectionHeading && (
<WizardSectionHeader
title={t("advancedSettings")}
description={helpText("ldapAdvancedSettingsDescription")}
showDescription={showSectionDescription}
/>
)}
<FormAccess role="manage-realm" isHorizontal>
<FormGroup
label={t("enableLdapv3Password")}
labelIcon={
<HelpItem
helpText="users-federation-help:enableLdapv3PasswordHelp"
fieldLabelId="users-federation:enableLdapv3Password"
/>
}
fieldId="kc-enable-ldapv3-password"
hasNoPaddingTop
>
<Controller
name="config.usePasswordModifyExtendedOp"
defaultValue={["false"]}
control={form.control}
render={({ onChange, value }) => (
<Switch
id={"kc-enable-ldapv3-password"}
isDisabled={false}
onChange={(value) => onChange([`${value}`])}
isChecked={value[0] === "true"}
label={t("common:on")}
labelOff={t("common:off")}
/>
)}
></Controller>
</FormGroup>
<FormGroup
label={t("validatePasswordPolicy")}
labelIcon={
<HelpItem
helpText="users-federation-help:validatePasswordPolicyHelp"
fieldLabelId="users-federation:validatePasswordPolicy"
/>
}
fieldId="kc-validate-password-policy"
hasNoPaddingTop
>
<Controller
name="config.validatePasswordPolicy"
defaultValue={["false"]}
control={form.control}
render={({ onChange, value }) => (
<Switch
id={"kc-validate-password-policy"}
isDisabled={false}
onChange={(value) => onChange([`${value}`])}
isChecked={value[0] === "true"}
label={t("common:on")}
labelOff={t("common:off")}
/>
)}
></Controller>
</FormGroup>
<FormGroup
label={t("trustEmail")}
labelIcon={
<HelpItem
helpText="users-federation-help:trustEmailHelp"
fieldLabelId="users-federation:trustEmail"
/>
}
fieldId="kc-trust-email"
hasNoPaddingTop
>
<Controller
name="config.trustEmail"
defaultValue={["false"]}
control={form.control}
render={({ onChange, value }) => (
<Switch
id={"kc-trust-email"}
isDisabled={false}
onChange={(value) => onChange([`${value}`])}
isChecked={value[0] === "true"}
label={t("common:on")}
labelOff={t("common:off")}
/>
)}
></Controller>
</FormGroup>
</FormAccess>
</>
);
};