Secure public access and e-signing

Troubleshoot a missing client Delivery Note PDF button

Resolve client-page visibility within the supplied hook and access rules.

Audience: Administrators and support staffPermission: Delivery Note: ViewModule v1.0.0
Exact navigationClient Portal → Invoices → Open invoice

What this guide covers

Resolve client-page visibility within the supplied hook and access rules. This guide follows the supplied Delivery Note module’s live hooks, controller actions, model rules, views and stored side effects.

Exact step-by-step process

  1. Verify the module is active and enabled.
  2. Confirm the invoice page context is recognised.
  3. Confirm the invoice has a non-void linked note.
  4. Confirm the logged-in client owns the invoice or the route carries the exact stored hash.
  5. Check that customer head/footer hooks and the invoice-button JavaScript load.
  6. Test with the same client account in a clean browser session.

Fields, choices and supported possibilities

  • Module enabled
  • Invoice ID/context
  • Invoice hash
  • Client ID
  • Active-note metadata
  • Customer asset injection

Code-backed validations and workflow rules

  • The button is intentionally absent for unauthorised, missing or void-note contexts.
  • Invoice UI enabled option gates admin invoice UI; the customer hook uses module enabled and eligible note resolution.
  • The code does not provide a global client Delivery Note menu.

Expected result and verification

  • The button appears only for the correct invoice and customer without broadening access.

Checks, security and troubleshooting

  • Keep the fix inside module/hook scope; do not edit core client-invoice access logic.
Stay within the supported flowDo not force database values, expose secure tokens, bypass permission checks, replace a stored signature or invent a status or interface that the supplied code does not implement.