NDA acceptance list: filtering, revocation, deletion

Endpoints of the acceptance list, normalisation of filters, row state calculation, the steps of revocation and the two kinds of deletion, permissions and content scope.

The admin list shows the rows of nda_acceptance with their state measured against the current template. It never creates rows; it revokes, trashes and deletes permanently, always within the content scope.

List

  1. Without the right the page redirects to the permission error page; in place of the list: "Warning: You do not have permission for NDA acceptances!"
  2. Filters from the URL, normalised: dates only as YYYY-MM-DD, status only 0, 1 or 9, IDs positive integers; page size 10, 25, 50, 100 or all (default 25).
  3. Status 9 applies only for users allowed to see deleted items, otherwise the result is empty; without the filter a deleted row never shows.
  4. Company group without company: the group's companies intersected with the content right; an empty intersection gives no result.
  5. Row state calculated per row (Dlbtdataroom::ndaStateFor() against the current default NDA template): valid, outdated, revoked, deleted; code: NDA- plus a 6-digit ID.

Revocation

  1. Right, row loaded within the content scope, only status 1 can be revoked.
  2. revokeAcceptance(): status 0, revoked_at, revoked_by, note up to 500 characters (the list menu item sends no note).
  3. Read-back, timeline event (nda_revoke), log line. No e-mail.

Errors: "The NDA acceptance was not found.", "Only an active NDA acceptance can be revoked.", "Warning: the operation failed."

Deletion

  • Shared endpoint for one row or the selected rows. Permanent if permanent=1, or if the user has only delete; otherwise trash (status 9).
  • Per row: scope check, write, read-back; partial success: "Only 2 of 3 rows were deleted (the others are not in your scope or no longer exist)." Success: "Success: deleted."
  • Permanent deletion does not delete the evidence PDF. Bulk deletion checks no separate bulk right.

Permissions

  • Base access: the menu path of NDA acceptances.
  • Function rights (base package): list, revoke, statusdelete, delete, debug. The card on the user form appears with the same list right.
  • Content scope: the row's client company must be among the allowed companies (unrestricted for the super administrator). Acceptances towards the operator (client 0) are visible only to the super administrator.

Known limitations

In this list the three-dot menu is always rendered, so a row without rights may open an empty menu.