/* eslint-disable */ // @ts-nocheck import PolicyEvaluationResponse from "@keycloak/keycloak-admin-client/lib/defs/policyEvaluationResponse"; import { useMemo } from "react"; import { Alert, List, ListItem, Text } from "../../../shared/@patternfly/react-core"; import { useTranslation } from "react-i18next"; import { sortBy } from "lodash-es"; type PermissionEvaluationResultProps = { evaluateResult: PolicyEvaluationResponse; }; export const PermissionEvaluationResult = ({ evaluateResult, }: PermissionEvaluationResultProps) => { const { t } = useTranslation(); const evaluatedResults = evaluateResult.results || []; const evaluatedResult = evaluatedResults[0] || {}; const alertTitle = evaluatedResult.resource?.name ?? t("permissionEvaluationAlertTitle"); const alertVariant = evaluateResult.status === "PERMIT" ? "success" : "warning"; const evaluatedAllowedScopes = useMemo( () => sortBy(evaluatedResult.allowedScopes || [], "name"), [evaluatedResult], ); const evaluatedDeniedScopes = useMemo( () => sortBy(evaluatedResult.deniedScopes || [], "name"), [evaluatedResult], ); const evaluatedPolicies = useMemo( () => sortBy(evaluatedResult.policies || [], "name"), [evaluatedResult], ); const evaluatedPermission = function (title: string, status: string) { const permissions = evaluatedPolicies.filter((p) => p.status === status); if (permissions.length == 0) { return; } return ( <> {t(title)}: {permissions.map((p) => ( {t("evaluatedPolicy", { name: p.policy?.name, status: p.status, })} ))} ); }; return ( {evaluatedAllowedScopes.length > 0 && ( <> {t("grantedScope")} {evaluatedAllowedScopes.map((scope) => ( {scope.name} ))} )} {evaluatedDeniedScopes.length > 0 && ( <> {t("deniedScope")} {evaluatedDeniedScopes.map((scope) => ( {scope.name} ))} )} {evaluatedPermission("grantedPermissions", "PERMIT")} {evaluatedPermission("deniedPermissions", "DENY")} ); };