A member's email is the campaign GMs' to read, and each person's own (#677) #1061
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/677-member-email-gms-only"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #677. The owner's answer to Q147 (D275).
Summary
The members list sent every member's email address to every member of the campaign. Now another member's
emailis present only when the reader holds the GM role in that campaign; a reader always gets their own. Everyone else getsnull.campaign_service.list_memberstakes a requiredviewer_id, so no caller can forget who is reading. All five routes that return members go through it:GET /members,POST /members,PATCH /members/{id},PUT /members/{id}/role, and the unlinked-member assign.MemberResponse.emailwas the only campaign-scoped response carrying another person's address.UserResponse.emailis only on/api/meand the admin pages, unchanged.emailwas already nullable), no migration, no bot contract change.Changelog
changelog.d/677-member-email-gms-only.security.mdTest plan
test_campaigns.py:PrivacyandMemberstests: 103 passed.🤖 Generated with Claude Code