Filter inactive people from signature request recipients#1176
Open
codenem wants to merge 2 commits into
Open
Conversation
69a23d5 to
f9e845a
Compare
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>
f9e845a to
64727c3
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
ProfileFilteronly 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: Addedstate: "ACTIVE"to theProfileFilterpassed when loading people for the bulk signature request dialog.DocumentSignaturesPage.tsx: Addedstate: ACTIVEto the@argumentsfilter onDocumentSignatureList_peopleFragmentfor the per-document signatures tab.How it works
The
ProfileFilterGraphQL input already supported astatefield (mapped toProfileStateenum withACTIVE/INACTIVEvalues). The frontend queries were simply not using it. By addingstate: ACTIVEalongside the existingcontractEnded: false, the people picker now excludes both contract-ended and SCIM-deactivated profiles.No backend changes are needed because:
contractEndDatevalidation provides server-side defense for contract-based inactivity.Linear Issue: ENG-394
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).
state: "ACTIVE"toProfileFilterin the bulk dialog and document signatures tab alongsidecontractEnded: false.RequestSignatureandBulkRequestSignatures; contract end-date validation remains.Written for commit 64727c3. Summary will update on new commits.