Reject signature and approval requests for people with ended contracts

Add server-side validation in BulkRequestSignatures, RequestSignature,
and RequestApproval to load the referenced profiles and verify none
have an ended contract before proceeding. Returns ErrProfileContractEnded
if a profile's contract_end_date is in the past, surfaced as a CONFLICT
GraphQL error in all three resolvers.

Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
This commit is contained in:
Sacha Al Himdani
2026-04-15 14:00:10 +02:00
parent 524f209df7
commit 754dac9ec6
4 changed files with 58 additions and 1 deletions

View File

@@ -37,6 +37,7 @@ import { graphql } from "relay-runtime";
import { z } from "zod";
import type { SignatureDocumentsDialogMutation } from "#/__generated__/core/SignatureDocumentsDialogMutation.graphql";
import type { SignatureDocumentsDialogPeopleFragment$key } from "#/__generated__/core/SignatureDocumentsDialogPeopleFragment.graphql";
import type { SignatureDocumentsDialogPeopleQuery } from "#/__generated__/core/SignatureDocumentsDialogPeopleQuery.graphql";
import type { SignatureDocumentsDialogPeopleRefetchQuery } from "#/__generated__/core/SignatureDocumentsDialogPeopleRefetchQuery.graphql";
import { useFormWithSchema } from "#/hooks/useFormWithSchema";
@@ -203,7 +204,10 @@ function PeopleList({
hasNext,
loadNext,
isLoadingNext,
} = usePaginationFragment<SignatureDocumentsDialogPeopleRefetchQuery>(
} = usePaginationFragment<
SignatureDocumentsDialogPeopleRefetchQuery,
SignatureDocumentsDialogPeopleFragment$key
>(
signatureDocumentsDialogPeopleFragment,
data.organization,
);