UNPKG

@keycloakify/keycloak-admin-ui

Version:
36 lines 1.45 kB
import { jsx as _jsx } from "react/jsx-runtime"; import { AlertVariant } from "@patternfly/react-core"; import { useTranslation } from "react-i18next"; import { useAdminClient } from "../admin-client"; import { useAlerts } from "../ui-shared"; import { RoleMapping } from "../components/role-mapping/RoleMapping"; export const GroupRoleMapping = ({ id, name }) => { const { adminClient } = useAdminClient(); const { t } = useTranslation(); const { addAlert, addError } = useAlerts(); const assignRoles = async (rows) => { try { const realmRoles = rows .filter((row) => row.client === undefined) .map((row) => row.role) .flat(); await adminClient.groups.addRealmRoleMappings({ id, roles: realmRoles, }); await Promise.all(rows .filter((row) => row.client !== undefined) .map((row) => adminClient.groups.addClientRoleMappings({ id, clientUniqueId: row.client.id, roles: [row.role], }))); addAlert(t("roleMappingUpdatedSuccess"), AlertVariant.success); } catch (error) { addError("roleMappingUpdatedError", error); } }; return _jsx(RoleMapping, { name: name, id: id, type: "groups", save: assignRoles }); }; //# sourceMappingURL=GroupRoleMapping.js.map