Skip to content

Filter inactive people from signature request recipients#1176

Open
codenem wants to merge 2 commits into
mainfrom
codenem/filter-inactive-signature-recipients-4ee2
Open

Filter inactive people from signature request recipients#1176
codenem wants to merge 2 commits into
mainfrom
codenem/filter-inactive-signature-recipients-4ee2

Conversation

@codenem
Copy link
Copy Markdown
Contributor

@codenem codenem commented May 12, 2026

Problem

When requesting signatures on a document (from either the multi-select pop-up or the document page), the recipient list includes people who are no longer active based on SCIM deactivation. The existing ProfileFilter only excluded people with ended contracts (contractEnded: false) but did not filter by profile state, so SCIM-deactivated profiles (state = INACTIVE) with no contract end date still appeared.

Resolves ENG-394.

Changes

Frontend

  • SignatureDocumentsDialog.tsx: Added state: "ACTIVE" to the ProfileFilter passed when loading people for the bulk signature request dialog.
  • DocumentSignaturesPage.tsx: Added state: ACTIVE to the @arguments filter on DocumentSignatureList_peopleFragment for the per-document signatures tab.

How it works

The ProfileFilter GraphQL input already supported a state field (mapped to ProfileState enum with ACTIVE/INACTIVE values). The frontend queries were simply not using it. By adding state: ACTIVE alongside the existing contractEnded: false, the people picker now excludes both contract-ended and SCIM-deactivated profiles.

No backend changes are needed because:

  • The existing contractEndDate validation provides server-side defense for contract-based inactivity.
  • Profiles start as INACTIVE and become ACTIVE on first login, so a server-side state check would incorrectly reject newly-invited users who haven't yet activated their accounts. The UI filter is the correct layer for this.

Linear Issue: ENG-394

Open in Web Open in Cursor 

Summary by cubic

Filter out inactive people from signature request recipients so SCIM‑deactivated users don’t appear. Also removes the backend inactive check to avoid blocking newly created users who haven’t logged in yet (ENG-394).

  • Bug Fixes
    • UI: Added state: "ACTIVE" to ProfileFilter in the bulk dialog and document signatures tab alongside contractEnded: false.
    • Backend: Removed inactive-profile validation in RequestSignature and BulkRequestSignatures; contract end-date validation remains.

Written for commit 64727c3. Summary will update on new commits.

@codenem codenem force-pushed the codenem/filter-inactive-signature-recipients-4ee2 branch from 69a23d5 to f9e845a Compare May 13, 2026 09:36
cursoragent and others added 2 commits May 13, 2026 13:38
The signature request recipient lists (both the multi-select dialog
and the document signatures page) included people who were inactive
via SCIM deactivation. The existing filter only excluded people with
ended contracts but not those with an INACTIVE state.

This adds state: ACTIVE to the ProfileFilter in both frontend queries
and introduces a server-side ErrProfileInactive validation in the
RequestSignature and BulkRequestSignatures service methods to reject
inactive profiles even if called directly via API.

Co-authored-by: Émile Ré <nemile.re@gmail.com>
Signed-off-by: Émile Ré <emile@getprobo.com>
Users are created with state=INACTIVE and only become ACTIVE on
first login. The server-side state check incorrectly rejected
newly-created users who hadn't yet activated their accounts.

The frontend filter (state: ACTIVE) is the correct layer to hide
deactivated people from the recipient picker. The existing contract
end date validation remains as server-side defense in depth.

Co-authored-by: Émile Ré <nemile.re@gmail.com>
Signed-off-by: Émile Ré <emile@getprobo.com>
@codenem codenem force-pushed the codenem/filter-inactive-signature-recipients-4ee2 branch from f9e845a to 64727c3 Compare May 13, 2026 09:38
@codenem codenem marked this pull request as ready for review May 13, 2026 09:40
@codenem codenem requested a review from a team May 13, 2026 09:41
Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 2 files

Copy link
Copy Markdown
Contributor

@gearnode gearnode left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants