johnnyq
497ea3b669
Centralize client portal access checks through contactCan()
...
Replaces the duplicated primary/billing/technical checks across portal pages, post.php handlers, nav, and dashboard with contactCan()/enforceContactCan(). Same behavior, but the rules now live in one place instead of being copy-pasted, which is what let them drift before. file.php keeps its 404 response; ticket-visibility and approval-routing checks are intentionally left as-is.
2026-07-25 17:55:30 -04:00
johnnyq
7bc47a58fe
Replace Function nullable_htmlentities() with just escapeHtml() and update all instances throughout
2026-07-14 17:10:45 -04:00
johnnyq
8de7b20ba1
Add CSRF Checks in the client portal
2026-03-07 13:11:08 -05:00
johnnyq
0a30300bde
replace all instances of mysqli_fetch_array with mysqli_fetch_assoc for better performance and memory usage
2026-01-14 17:30:23 -05:00
johnnyq
0e401df3c0
Setting 0 for the Payment Provider threshold disables the invoice amount check
2025-10-01 15:23:00 -04:00
johnnyq
71d30ff95f
Enforce Payment Provider Max Threshold for Stripe Paymented in Guest Invoice and Unpaid Invoices
2025-09-30 12:14:24 -04:00
johnnyq
2549a97a7e
Added card icons to Saved Payments in Client Portal and spruced up ui
2025-09-03 17:40:09 -04:00
johnnyq
fc2cca5fdb
Added card icon
2025-09-03 17:14:53 -04:00
johnnyq
ef1ec56270
Allow the Client to easily Pay an invoice from the client portal with a saved card
2025-09-03 17:09:17 -04:00
johnnyq
ed9b99e2f0
Fix unpaid invoices on client portal but also comment it out until ready for next release
2025-09-02 14:52:38 -04:00
johnnyq
5aee84e84f
Add Credit card icon to the pay button
2025-07-15 18:27:09 -04:00
johnnyq
3e7d7f3801
Make Client Portal Dashboard Cards Linkable, added upaid invoices with ui for option to enter card manually, pay with saved card or pay entire balance
2025-07-15 18:23:20 -04:00