{el.inverted ? "Cannot" : "Can"}{" "}
{el.action.toString()}{" "}
{el.subject.toString()} {hasConditions && "with conditions"}
{Object.keys(el.conditions || {}).flatMap((field, fieldIndex) => {
const operators = (
el.conditions as Record<
string,
| string
| { [K in PermissionConditionOperators]: string | string[] }
>
)[field];
const formattedFieldName = camelCaseToSpaces(field).toLowerCase();
if (typeof operators === "string") {
return (
{formattedFieldName} equal{" "}
{operators}
);
}
return Object.keys(operators).map((operator, operatorIndex) => (
{formattedFieldName}{" "}
{
formatedConditionsOperatorNames[
operator as PermissionConditionOperators
]
}{" "}
{operators[
operator as PermissionConditionOperators
].toString()}
));
})}