fc621cdf81
ci / changes (push) Successful in 3s
ci / tc_booking (push) Has been skipped
ci / tc_operator (push) Has been skipped
ci / tc_platform_api (push) Has been skipped
ci / test_platform_api (push) Has been skipped
ci / tc_website (push) Successful in 20s
ci / tc_portal (push) Successful in 26s
ci / build_booking (push) Has been skipped
ci / build_operator (push) Has been skipped
ci / build_platform_api (push) Has been skipped
ci / build_zpush (push) Successful in 11s
ci / build_portal (push) Successful in 41s
ci / deploy (push) Successful in 39s
BackendCombined login is all-or-nothing, and Stalwart returns 404 for /dav/card/<account>/ when the account's default address book was never created (it doesn't auto-create on the gateway's PROPFIND the way the calendar home worked) — so CardDAV killed every otherwise-successful EAS login. Exchange accounts now bundle mail + calendar; contacts stay on the Apple-profile CardDAV path. Re-enable BackendCardDAV once platform-api provisions a default address book at mailbox creation. Copy/docs aligned: portal hint, SERVICES.md, website FAQ (da+en).
50 lines
2.2 KiB
PHP
50 lines
2.2 KiB
PHP
<?php
|
|
// dezky replacement for Z-Push's backend/combined/config.php (applied at
|
|
// image build, see Dockerfile). One EAS account fans out to Stalwart over
|
|
// IMAP (mail) and CalDAV (calendar/tasks). Login succeeds only if every
|
|
// backend authenticates — they all hit the same Stalwart account with the
|
|
// same credentials, so that's one effective check.
|
|
//
|
|
// CardDAV (contacts) is deliberately NOT in the bundle yet: the combined
|
|
// login is all-or-nothing, and Stalwart 404s the addressbook home of any
|
|
// account whose default address book was never created — which killed every
|
|
// EAS login on first deploy. Re-add 'd' => BackendCardDAV once platform-api
|
|
// provisions a default address book at mailbox creation. Apple devices get
|
|
// contacts via the .mobileconfig CardDAV payload meanwhile.
|
|
|
|
class BackendCombinedConfig {
|
|
|
|
public static function GetBackendCombinedConfig() {
|
|
return array(
|
|
'backends' => array(
|
|
'i' => array('name' => 'BackendIMAP'),
|
|
'c' => array('name' => 'BackendCalDAV'),
|
|
),
|
|
'delimiter' => '/',
|
|
'folderbackend' => array(
|
|
SYNC_FOLDER_TYPE_INBOX => 'i',
|
|
SYNC_FOLDER_TYPE_DRAFTS => 'i',
|
|
SYNC_FOLDER_TYPE_WASTEBASKET => 'i',
|
|
SYNC_FOLDER_TYPE_SENTMAIL => 'i',
|
|
SYNC_FOLDER_TYPE_OUTBOX => 'i',
|
|
SYNC_FOLDER_TYPE_OTHER => 'i',
|
|
SYNC_FOLDER_TYPE_USER_MAIL => 'i',
|
|
SYNC_FOLDER_TYPE_APPOINTMENT => 'c',
|
|
SYNC_FOLDER_TYPE_USER_APPOINTMENT => 'c',
|
|
SYNC_FOLDER_TYPE_TASK => 'c',
|
|
SYNC_FOLDER_TYPE_USER_TASK => 'c',
|
|
// No contacts/notes/journal on EAS for now — let mail own
|
|
// them so folder creation never lands somewhere surprising.
|
|
SYNC_FOLDER_TYPE_CONTACT => 'i',
|
|
SYNC_FOLDER_TYPE_USER_CONTACT => 'i',
|
|
SYNC_FOLDER_TYPE_NOTE => 'i',
|
|
SYNC_FOLDER_TYPE_USER_NOTE => 'i',
|
|
SYNC_FOLDER_TYPE_JOURNAL => 'i',
|
|
SYNC_FOLDER_TYPE_USER_JOURNAL => 'i',
|
|
SYNC_FOLDER_TYPE_UNKNOWN => 'i',
|
|
),
|
|
'rootcreatefolderbackend' => 'i',
|
|
);
|
|
}
|
|
}
|