modcomms/backend
michael ebfcd60c71 Fix campaign visibility bug for unassigned users after agency reassignment
Unassigned (no agency) non-admin users previously saw ALL campaigns due to
a truthiness check that treated None agency_id as "no filter". This was a
security bug — they should see NO campaigns and be blocked from creating them.

Backend: Add _NO_AGENCY sentinel to distinguish "no filter" from "no agency",
add early-returns at all 5 list/analytics endpoints, fix _check_campaign_access
to explicitly reject unassigned users, and block campaign creation with 403.

Frontend: Add isUnassigned boolean to UserContext, show informational empty
state on Campaigns view, and reinforce readOnly for defense-in-depth.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 07:42:42 -06:00
..
alembic Add 4-tier RBAC backend: auth dependencies, role enforcement, agency filtering 2026-02-19 08:28:23 -06:00
app Fix campaign visibility bug for unassigned users after agency reassignment 2026-02-22 07:42:42 -06:00
.env.example Add support email functionality via Mailgun 2026-01-24 07:03:11 -06:00
alembic.ini permissions changes 2025-12-18 16:51:27 +00:00
Dockerfile Fix large file preview and download issues 2026-01-25 08:06:41 -06:00
requirements.txt Switch LlamaParse to llama-cloud SDK with agentic_plus tier 2026-02-12 15:29:23 -06:00