- Shipped
- August 15, 2026 at 5:24 AM UTC
- Author
- kamo
- Commit
- ef693b3
VIEW_EMAIL_ACCOUNTS now gates the administrative reads on MailboxController and MANAGE_EMAIL_ACCOUNTS gates every write. Both were client-only before: the whole email-admin family — ACCESS_MAIL, MANAGE_EMAIL_ACCOUNTS, MANAGE_EMAIL_SETTINGS — counted as enforced in the audit while every one of their sites was a .tsx or .ts file. VIEW_EMAIL_ACCOUNTS was referenced nowhere at all. The mailbox LIST endpoint is deliberately left open. It is the first source in /api/email/directory, which backs recipient autocomplete and returns an empty list rather than an error when a source refuses, so gating it on a right held by 15 of 42 roles would have silently emptied the address book for everyone who can read mail but not administer it. A gate that is correct in the abstract and wrong in context is still wrong, and only following the consumer showed it. VIEW_EMAIL_LOGS (64) is deleted: no email log exists in any schema, endpoint or screen, while the platform models logs everywhere it actually has them. Taxonomy 194/131/33/30 becomes 193/130/33/30, and the TS mirror, both parent maps and the parity count move with it.