diff --git a/src/user-federation/ldap/mappers/LdapMapperFullNameAttribute.tsx b/src/user-federation/ldap/mappers/LdapMapperFullNameAttribute.tsx new file mode 100644 index 0000000000..458a0f2dee --- /dev/null +++ b/src/user-federation/ldap/mappers/LdapMapperFullNameAttribute.tsx @@ -0,0 +1,104 @@ +import { FormGroup, Switch, TextInput } from "@patternfly/react-core"; +import React from "react"; +import { HelpItem } from "../../../components/help-enabler/HelpItem"; +import { Controller, UseFormMethods } from "react-hook-form"; +import { FormAccess } from "../../../components/form-access/FormAccess"; +import { useTranslation } from "react-i18next"; +import { LdapMapperGeneral } from "./shared/LdapMapperGeneral"; + +export type LdapMapperFullNameAttributeProps = { + form: UseFormMethods; +}; + +export const LdapMapperFullNameAttribute = ({ + form, +}: LdapMapperFullNameAttributeProps) => { + const { t } = useTranslation("user-federation"); + const helpText = useTranslation("user-federation-help").t; + + return ( + <> + + + + + } + fieldId="kc-full-name-attribute" + isRequired + > + + + + } + fieldId="kc-read-only" + hasNoPaddingTop + > + ( + onChange([`${value}`])} + isChecked={value[0] === "true"} + label={t("common:on")} + labelOff={t("common:off")} + /> + )} + > + + + } + fieldId="kc-read-only" + hasNoPaddingTop + > + ( + onChange([`${value}`])} + isChecked={value[0] === "true"} + label={t("common:on")} + labelOff={t("common:off")} + /> + )} + > + + + + ); +}; diff --git a/src/user-federation/ldap/mappers/LdapMapperHardcodedAttribute.tsx b/src/user-federation/ldap/mappers/LdapMapperHardcodedAttribute.tsx new file mode 100644 index 0000000000..e71c13adfd --- /dev/null +++ b/src/user-federation/ldap/mappers/LdapMapperHardcodedAttribute.tsx @@ -0,0 +1,68 @@ +import { FormGroup, TextInput } from "@patternfly/react-core"; +import React from "react"; +import { HelpItem } from "../../../components/help-enabler/HelpItem"; +import { UseFormMethods } from "react-hook-form"; +import { FormAccess } from "../../../components/form-access/FormAccess"; +import { useTranslation } from "react-i18next"; +import { LdapMapperGeneral } from "./shared/LdapMapperGeneral"; + +export type LdapMapperHardcodedAttributeProps = { + form: UseFormMethods; +}; + +export const LdapMapperHardcodedAttribute = ({ + form, +}: LdapMapperHardcodedAttributeProps) => { + const { t } = useTranslation("user-federation"); + const helpText = useTranslation("user-federation-help").t; + + return ( + <> + + + + } + fieldId="kc-user-model-attribute" + isRequired + > + + + + } + fieldId="kc-attribute-value" + isRequired + > + + + + + ); +}; diff --git a/src/user-federation/ldap/mappers/LdapMapperHardcodedLdapAttribute.tsx b/src/user-federation/ldap/mappers/LdapMapperHardcodedLdapAttribute.tsx new file mode 100644 index 0000000000..e1b786592e --- /dev/null +++ b/src/user-federation/ldap/mappers/LdapMapperHardcodedLdapAttribute.tsx @@ -0,0 +1,69 @@ +import { FormGroup, TextInput } from "@patternfly/react-core"; +import React from "react"; +import { HelpItem } from "../../../components/help-enabler/HelpItem"; +import { UseFormMethods } from "react-hook-form"; +import { FormAccess } from "../../../components/form-access/FormAccess"; +import { useTranslation } from "react-i18next"; +import { LdapMapperGeneral } from "./shared/LdapMapperGeneral"; + +export type LdapMapperHardcodedLdapAttributeProps = { + form: UseFormMethods; +}; + +export const LdapMapperHardcodedLdapAttribute = ({ + form, +}: LdapMapperHardcodedLdapAttributeProps) => { + const { t } = useTranslation("user-federation"); + const helpText = useTranslation("user-federation-help").t; + + return ( + <> + + + + + } + fieldId="kc-ldap-attribute-name" + isRequired + > + + + + } + fieldId="kc-ldap-attribute-value" + isRequired + > + + + + + ); +}; diff --git a/src/user-federation/ldap/mappers/LdapMapperHardcodedLdapGroup.tsx b/src/user-federation/ldap/mappers/LdapMapperHardcodedLdapGroup.tsx new file mode 100644 index 0000000000..f6c3b3893e --- /dev/null +++ b/src/user-federation/ldap/mappers/LdapMapperHardcodedLdapGroup.tsx @@ -0,0 +1,47 @@ +import { FormGroup, TextInput } from "@patternfly/react-core"; +import React from "react"; +import { HelpItem } from "../../../components/help-enabler/HelpItem"; +import { UseFormMethods } from "react-hook-form"; +import { FormAccess } from "../../../components/form-access/FormAccess"; +import { useTranslation } from "react-i18next"; +import { LdapMapperGeneral } from "./shared/LdapMapperGeneral"; + +export type LdapMapperHardcodedLdapGroupProps = { + form: UseFormMethods; +}; + +export const LdapMapperHardcodedLdapGroup = ({ + form, +}: LdapMapperHardcodedLdapGroupProps) => { + const { t } = useTranslation("user-federation"); + const helpText = useTranslation("user-federation-help").t; + + return ( + <> + + + + } + fieldId="kc-group" + isRequired + > + + + + + ); +}; diff --git a/src/user-federation/ldap/mappers/LdapMapperHardcodedLdapRole.tsx b/src/user-federation/ldap/mappers/LdapMapperHardcodedLdapRole.tsx new file mode 100644 index 0000000000..9bcf71d85c --- /dev/null +++ b/src/user-federation/ldap/mappers/LdapMapperHardcodedLdapRole.tsx @@ -0,0 +1,47 @@ +import { FormGroup, TextInput } from "@patternfly/react-core"; +import React from "react"; +import { HelpItem } from "../../../components/help-enabler/HelpItem"; +import { UseFormMethods } from "react-hook-form"; +import { FormAccess } from "../../../components/form-access/FormAccess"; +import { useTranslation } from "react-i18next"; +import { LdapMapperGeneral } from "./shared/LdapMapperGeneral"; + +export type LdapMapperHardcodedLdapRoleProps = { + form: UseFormMethods; +}; + +export const LdapMapperHardcodedLdapRole = ({ + form, +}: LdapMapperHardcodedLdapRoleProps) => { + const { t } = useTranslation("user-federation"); + const helpText = useTranslation("user-federation-help").t; + + return ( + <> + + + + } + fieldId="kc-role" + isRequired + > + + + + + ); +}; diff --git a/src/user-federation/ldap/mappers/LdapMapperMsadLdsUserAccount.tsx b/src/user-federation/ldap/mappers/LdapMapperMsadLdsUserAccount.tsx new file mode 100644 index 0000000000..b1ad0a2c82 --- /dev/null +++ b/src/user-federation/ldap/mappers/LdapMapperMsadLdsUserAccount.tsx @@ -0,0 +1,20 @@ +import React from "react"; +import { UseFormMethods } from "react-hook-form"; +import { FormAccess } from "../../../components/form-access/FormAccess"; +import { LdapMapperGeneral } from "./shared/LdapMapperGeneral"; + +export type LdapMapperMsadLdsUserAccountProps = { + form: UseFormMethods; +}; + +export const LdapMapperMsadLdsUserAccount = ({ + form, +}: LdapMapperMsadLdsUserAccountProps) => { + return ( + <> + + + + + ); +}; diff --git a/src/user-federation/ldap/mappers/LdapMapperMsadUserAccount.tsx b/src/user-federation/ldap/mappers/LdapMapperMsadUserAccount.tsx new file mode 100644 index 0000000000..de4d9e3d26 --- /dev/null +++ b/src/user-federation/ldap/mappers/LdapMapperMsadUserAccount.tsx @@ -0,0 +1,54 @@ +import { FormGroup, Switch } from "@patternfly/react-core"; +import React from "react"; +import { HelpItem } from "../../../components/help-enabler/HelpItem"; +import { Controller, UseFormMethods } from "react-hook-form"; +import { FormAccess } from "../../../components/form-access/FormAccess"; +import { useTranslation } from "react-i18next"; +import { LdapMapperGeneral } from "./shared/LdapMapperGeneral"; + +export type LdapMapperMsadUserAccountProps = { + form: UseFormMethods; +}; + +export const LdapMapperMsadUserAccount = ({ + form, +}: LdapMapperMsadUserAccountProps) => { + const { t } = useTranslation("user-federation"); + const helpText = useTranslation("user-federation-help").t; + + return ( + <> + + + + } + fieldId="kc-der-formatted" + hasNoPaddingTop + > + ( + onChange([`${value}`])} + isChecked={value[0] === "true"} + label={t("common:on")} + labelOff={t("common:off")} + /> + )} + > + + + + ); +}; diff --git a/src/user-federation/ldap/mappers/LdapMapperUserAttribute.tsx b/src/user-federation/ldap/mappers/LdapMapperUserAttribute.tsx index 8446de2301..31f11198d1 100644 --- a/src/user-federation/ldap/mappers/LdapMapperUserAttribute.tsx +++ b/src/user-federation/ldap/mappers/LdapMapperUserAttribute.tsx @@ -120,7 +120,6 @@ export const LdapMapperUserAttribute = ({ )} > - - - {mapperType === "certificate-ldap-mapper" ? ( <> } fieldId="kc-der-formatted" diff --git a/src/user-federation/ldap/mappers/LdapMappingDetails.tsx b/src/user-federation/ldap/mappers/LdapMappingDetails.tsx index d71a1f8afd..d485f12aa9 100644 --- a/src/user-federation/ldap/mappers/LdapMappingDetails.tsx +++ b/src/user-federation/ldap/mappers/LdapMappingDetails.tsx @@ -14,7 +14,17 @@ import { useHistory, useParams } from "react-router-dom"; import { useForm } from "react-hook-form"; import { useAlerts } from "../../../components/alert/Alerts"; import { useTranslation } from "react-i18next"; + import { LdapMapperUserAttribute } from "./LdapMapperUserAttribute"; +import { LdapMapperMsadUserAccount } from "./LdapMapperMsadUserAccount"; +import { LdapMapperMsadLdsUserAccount } from "./LdapMapperMsadLdsUserAccount"; +import { LdapMapperFullNameAttribute } from "./LdapMapperFullNameAttribute"; + +import { LdapMapperHardcodedLdapRole } from "./LdapMapperHardcodedLdapRole"; +import { LdapMapperHardcodedLdapGroup } from "./LdapMapperHardcodedLdapGroup"; +import { LdapMapperHardcodedLdapAttribute } from "./LdapMapperHardcodedLdapAttribute"; +import { LdapMapperHardcodedAttribute } from "./LdapMapperHardcodedAttribute"; + import { useRealm } from "../../../context/realm-context/RealmContext"; export const LdapMappingDetails = () => { @@ -81,6 +91,41 @@ export const LdapMappingDetails = () => { /> ) : ""} + {mapper + ? mapper.providerId! === "msad-user-account-control-mapper" && ( + + ) + : ""} + {mapper + ? mapper.providerId! === "msad-lds-user-account-control-mapper" && ( + + ) + : ""} + {mapper + ? mapper.providerId! === "full-name-ldap-mapper" && ( + + ) + : ""} + {mapper + ? mapper.providerId! === "hardcoded-ldap-role-mapper" && ( + + ) + : ""} + {mapper + ? mapper.providerId! === "hardcoded-ldap-group-mapper" && ( + + ) + : ""} + {mapper + ? mapper.providerId! === "hardcoded-ldap-attribute-mapper" && ( + + ) + : ""} + {mapper + ? mapper.providerId! === "hardcoded-attribute-mapper" && ( + + ) + : ""}