feat: added validation for secret path in permission

This commit is contained in:
=
2025-01-29 17:01:45 +05:30
parent 2a84d61862
commit a6145120e6
3 changed files with 36 additions and 24 deletions
@@ -80,6 +80,10 @@ const ConditionSchema = z
return true;
},
{ message: "Duplicate operator found for a condition" }
)
.refine(
(val) => val.filter((el) => el.lhs === "secretPath").every((el) => el.rhs.startsWith("/")),
{ message: "Invalid Secret Path. Must start with '/'" }
);
export const projectRoleFormSchema = z.object({
@@ -36,6 +36,10 @@ export const SecretPermissionConditions = ({ position = 0, isDisabled }: Props)
name: `permissions.secrets.${position}.conditions`
});
const conditionErrorMessage =
errors?.permissions?.secrets?.[position]?.conditions?.message ||
errors?.permissions?.secrets?.[position]?.conditions?.root?.message;
return (
<div className="mt-6 border-t border-t-mineshaft-600 bg-mineshaft-800 pt-2">
<p className="mt-2 text-gray-300">Conditions</p>
@@ -147,10 +151,10 @@ export const SecretPermissionConditions = ({ position = 0, isDisabled }: Props)
);
})}
</div>
{errors?.permissions?.secrets?.[position]?.conditions?.message && (
{conditionErrorMessage && (
<div className="flex items-center space-x-2 py-2 text-sm text-gray-400">
<FontAwesomeIcon icon={faWarning} className="text-red" />
<span>{errors?.permissions?.secrets?.[position]?.conditions?.message}</span>
<span>{conditionErrorMessage}</span>
</div>
)}
<div>