From 37ad6bd14a74e5e7c00605ffd1d84ba52073556a Mon Sep 17 00:00:00 2001 From: mfrances Date: Fri, 30 Apr 2021 09:26:17 -0400 Subject: [PATCH] hardcoded version of role modal --- .../mappers/LdapMapperHardcodedLdapRole.tsx | 73 ++++++++++++++++++- 1 file changed, 71 insertions(+), 2 deletions(-) diff --git a/src/user-federation/ldap/mappers/LdapMapperHardcodedLdapRole.tsx b/src/user-federation/ldap/mappers/LdapMapperHardcodedLdapRole.tsx index 3b8e00ce83..4757707a9b 100644 --- a/src/user-federation/ldap/mappers/LdapMapperHardcodedLdapRole.tsx +++ b/src/user-federation/ldap/mappers/LdapMapperHardcodedLdapRole.tsx @@ -1,9 +1,16 @@ -import { FormGroup, TextInput } from "@patternfly/react-core"; -import React from "react"; +import { AlertVariant, Button, FormGroup, TextInput } from "@patternfly/react-core"; +import React, { useState } from "react"; import { HelpItem } from "../../../components/help-enabler/HelpItem"; import type { UseFormMethods } from "react-hook-form"; import { useTranslation } from "react-i18next"; +import { useAdminClient } from "../../../context/auth/AdminClient"; +import { useAlerts } from "../../../components/alert/Alerts"; +import { RoleMappingPayload } from "keycloak-admin/lib/defs/roleRepresentation"; + + +import { AddRoleMappingModal, MappingType } from "../../../components/role-mapping/AddRoleMappingModal"; + export type LdapMapperHardcodedLdapRoleProps = { form: UseFormMethods; }; @@ -14,8 +21,64 @@ export const LdapMapperHardcodedLdapRole = ({ const { t } = useTranslation("user-federation"); const helpText = useTranslation("user-federation-help").t; + const adminClient = useAdminClient(); + + const [showAssign, setShowAssign] = useState(false); + + const { addAlert } = useAlerts(); + + + const assignRoles = async (rows: Row[]) => { + try { + const realmRoles = rows + .filter((row) => row.client === undefined) + .map((row) => row.role as RoleMappingPayload) + .flat(); + await adminClient.clientScopes.addRealmScopeMappings( + { + id, + }, + realmRoles + ); + await Promise.all( + rows + .filter((row) => row.client !== undefined) + .map((row) => + adminClient.clientScopes.addClientScopeMappings( + { + id, + client: row.client!.id!, + }, + [row.role as RoleMappingPayload] + ) + ) + ); + addAlert(t("roleMappingUpdatedSuccess"), AlertVariant.success); + } catch (error) { + addAlert( + t("roleMappingUpdatedError", { + error: error.response?.data?.errorMessage || error, + }), + AlertVariant.danger + ); + } + }; + return ( <> + {showAssign && ( + // MF 042921 hardcoded for now, to see modal displayed + setShowAssign(false)} + />)} + + );