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
8f43b92496
Use stripe_init include to init stripe and updated code everywhere
2026-07-23 13:00:01 -04:00
johnnyq
b57ddc0e5c
Replace Function sanitizeInput() with just escapeSql() and update all instances throughout
2026-07-14 17:17:50 -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
8da3a107fb
Rename plugins to libs and update all file references
2026-07-10 13:24:20 -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
wrongecho
6d3351b2f7
Payment providers bug-fixing
2025-09-22 11:53:49 +01:00
johnnyq
c26ce4b7dc
Spruced up UI and eliminated checkbox to grant consent on Stripe consent in client Portal instead button acts a consent
2025-09-08 17:36:09 -04:00
johnnyq
46d93f986e
Further enhanced the Saved Payments Section by splitting cards and add card into 2 columns
2025-09-03 17:45:11 -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
Marcus Hill
de627c19c5
No csrf for client side, yet
2025-08-30 15:51:14 +01:00
johnnyq
9bc705bfa1
Updated Guest pay and Client Add Delete Payments, adjustedsetting saved payment per recurring invoice
2025-07-09 01:45:56 -04:00