Macky
3d5c81fbd7
feat(saas): Phase 3 — plan/seats/active model, ToS consent, signed expiring export
P3a: org carries plan/seats/active/created_at; create_user enforces seats + rejects
inactive org; verify blocks login for inactive orgs; PATCH /api/admin/orgs (super_admin)
updates plan/seats/active with audit. Fixed verify swallowing its AuthError.
P3b: export/token issues a 5-min HMAC one-time CSV link; export accepts ?token=.
P3c: setup requires accepted_terms (consent stored); Setup.vue consent checkbox.
All 8 backend suites pass. Rebuilt dist.
2026-08-09 09:48:55 +07:00
..
2026-08-08 10:55:45 +07:00
2026-08-09 09:48:55 +07:00
2026-08-08 15:06:48 +07:00
2026-08-09 09:48:55 +07:00
2026-08-09 09:48:55 +07:00
2026-08-09 09:48:55 +07:00
2026-08-09 09:48:55 +07:00
2026-08-08 15:06:48 +07:00
2026-08-08 10:55:45 +07:00
2026-08-09 09:48:55 +07:00
2026-08-09 07:22:50 +07:00
2026-08-09 09:48:55 +07:00
2026-08-09 09:48:55 +07:00
2026-08-08 16:12:30 +07:00
2026-08-09 09:48:55 +07:00
2026-08-09 09:48:55 +07:00
2026-08-09 09:48:55 +07:00
2026-08-09 09:48:55 +07:00
2026-08-08 17:00:09 +07:00
2026-08-08 10:55:45 +07:00
2026-08-09 09:48:55 +07:00
2026-08-09 09:48:55 +07:00
2026-08-08 10:55:45 +07:00
2026-08-09 09:48:55 +07:00
2026-08-08 10:55:45 +07:00
2026-08-09 09:48:55 +07:00
2026-08-09 09:48:55 +07:00
2026-08-09 09:48:55 +07:00
2026-08-09 09:48:55 +07:00
2026-08-09 09:48:55 +07:00
2026-08-08 15:06:48 +07:00
2026-08-09 09:48:55 +07:00
2026-08-09 09:48:55 +07:00