/* eslint-disable */ // @ts-nocheck import type ClientRepresentation from "@keycloak/keycloak-admin-client/lib/defs/clientRepresentation"; import type { RoleMappingPayload } from "@keycloak/keycloak-admin-client/lib/defs/roleRepresentation"; import { AlertVariant, Divider, FormGroup, PageSection, Switch, } from "../../../shared/@patternfly/react-core"; import { useTranslation } from "react-i18next"; import { HelpItem } from "../../../shared/keycloak-ui-shared"; import { useAdminClient } from "../../admin-client"; import { useAlerts } from "../../../shared/keycloak-ui-shared"; import { FormAccess } from "../../components/form/FormAccess"; import { RoleMapping, Row } from "../../components/role-mapping/RoleMapping"; import { useAccess } from "../../context/access/Access"; type DedicatedScopeProps = { client: ClientRepresentation; onChange?: (client: ClientRepresentation) => void; }; export const DedicatedScope = ({ client, onChange }: DedicatedScopeProps) => { const { adminClient } = useAdminClient(); const { t } = useTranslation(); const { addAlert, addError } = useAlerts(); const { hasAccess } = useAccess(); const isManager = hasAccess("manage-clients") || client.access?.manage; const assignRoles = async (rows: Row[]) => { try { const realmRoles = rows .filter((row) => row.client === undefined) .map((row) => row.role as RoleMappingPayload) .flat(); await Promise.all([ adminClient.clients.addRealmScopeMappings( { id: client.id!, }, realmRoles, ), ...rows .filter((row) => row.client !== undefined) .map((row) => adminClient.clients.addClientScopeMappings( { id: client.id!, client: row.client!.id!, }, [row.role as RoleMappingPayload], ), ), ]); addAlert(t("clientScopeSuccess"), AlertVariant.success); } catch (error) { addError("clientScopeError", error); } }; const update = async () => { const newClient = { ...client, fullScopeAllowed: !client.fullScopeAllowed }; try { await adminClient.clients.update({ id: client.id! }, newClient); addAlert(t("clientScopeSuccess"), AlertVariant.success); onChange?.(newClient); } catch (error) { addError("clientScopeError", error); } }; return ( } fieldId="fullScopeAllowed" > {!client.fullScopeAllowed && ( <> )} ); };