- Shipped
- September 5, 2026 at 4:31 PM UTC
- Author
- Kamo
- Commit
- 8e593a0
The Manage Sources dialog on the Contacts page had the same defect as the CalDAV/CardDAV settings tab, on a screen ordinary members reach rather than one behind MANAGE_EMAIL_SETTINGS: choosing Google or Microsoft showed a line saying the OAuth flow was not implemented and to use the API directly, above an Add button that POSTed a source with no credentials at all. That row was created, appeared in the list with a green status dot, and could never sync -- there was nothing to sync with. Those two now get the real connect, through the same DavOAuthConnect the settings tab uses, in member scope: a contact source added here belongs to the member, not to the organization. The Add button is hidden for them because there is genuinely nothing to submit -- the grant is written by the OAuth callback -- and the dialog takes an onRefresh so the list can be re-read afterwards, which onAdd would otherwise have been the only hook for. Apple and custom servers are untouched: they have credentials to type, so they keep the form and the button. Also sends `bidirectional` rather than `bidirectionalSync`, which is the name the column has and therefore the only one the service stores.