PHP-Push-2
PHP-Push-2 copied to clipboard
Don't offer backends that don't exist
why does z-push "offer" Mail (on by default), Contacts (off by default), Calendars (on by default) and Reminders (on by default) even when I have caldav and imap backends disabled in backend/config.php?
Could you paste the whole backend/config and combined/config.php ? Thanks!
What do you mean with backend/config=
combined/config.php looks like this:
<?php
/***********************************************
* File : backend/combined/config.php
* Project : Z-Push
* Descr : configuration file for the
* combined backend.
*
* Created : 29.11.2010
*
* Copyright 2007 - 2010 Zarafa Deutschland GmbH
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License, version 3,
* as published by the Free Software Foundation with the following additional
* term according to sec. 7:
*
* According to sec. 7 of the GNU Affero General Public License, version 3,
* the terms of the AGPL are supplemented with the following terms:
*
* "Zarafa" is a registered trademark of Zarafa B.V.
* "Z-Push" is a registered trademark of Zarafa Deutschland GmbH
* The licensing of the Program under the AGPL does not imply a trademark license.
* Therefore any rights, title and interest in our trademarks remain entirely with us.
*
* However, if you propagate an unmodified version of the Program you are
* allowed to use the term "Z-Push" to indicate that you distribute the Program.
* Furthermore you may use our trademarks where it is necessary to indicate
* the intended purpose of a product or service provided you use it in accordance
* with honest practices in industrial or commercial matters.
* If you want to propagate modified versions of the Program under the name "Z-Push",
* you may only do so if you have a written permission by Zarafa Deutschland GmbH
* (to acquire a permission please contact Zarafa at [email protected]).
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* Consult LICENSE file for details
************************************************/
class BackendCombinedConfig {
// *************************
// BackendZarafa settings
// *************************
public static $BackendZarafa_config = array('MAPI_SERVER' => MAPI_SERVER);
// *************************
// BackendIMAP settings
// *************************
public static $BackendIMAP_config = array(
// Defines the server to which we want to connect
'IMAP_SERVER' => IMAP_SERVER,
// connecting to default port (143)
'IMAP_PORT' => IMAP_PORT,
// best cross-platform compatibility (see http://php.net/imap_open for options)
'IMAP_OPTIONS' => IMAP_OPTIONS,
// overwrite the "from" header if it isn't set when sending emails
// options: 'username' - the username will be set (usefull if your login is equal to your emailaddress)
// 'domain' - the value of the "domain" field is used
// '@mydomain.com' - the username is used and the given string will be appended
'IMAP_DEFAULTFROM' => IMAP_DEFAULTFROM,
// copy outgoing mail to this folder. If not set z-push will try the default folders
'IMAP_SENTFOLDER' => IMAP_SENTFOLDER,
// forward messages inline (default false - as attachment)
'IMAP_INLINE_FORWARD' => IMAP_INLINE_FORWARD,
// use imap_mail() to send emails (default) - if false mail() is used
'IMAP_USE_IMAPMAIL' => IMAP_USE_IMAPMAIL,
);
// *************************
// BackendMaildir settings
// *************************
public static $BackendMaildir_config = array(
'MAILDIR_BASE' => MAILDIR_BASE,
'MAILDIR_SUBDIR' => MAILDIR_SUBDIR,
);
// *************************
// BackendVCardDir settings
// *************************
public static $BackendVCardDir_config = array('VCARDDIR_DIR' => VCARDDIR_DIR);
// *************************
// BackendCalDAV settings
// *************************
public static $BackendCalDAV_config = array(
'CALDAV_SERVER' => CALDAV_SERVER,
'CALDAV_PORT' => CALDAV_PORT,
'CALDAV_PATH' => CALDAV_PATH,
);
// *************************
// BackendLDAP settings
// *************************
public static $BackendLDAP_config = array(
'LDAP_SERVER' => LDAP_SERVER,
'LDAP_PORT' => LDAP_PORT,
'LDAP_USER_DN' => LDAP_USER_DN,
'LDAP_BASE_DNS' => LDAP_BASE_DNS,
);
// *************************
// BackendCombined settings
// *************************
/**
* Returns the configuration of the combined backend
*
* @access public
* @return array
*
*/
public static function GetBackendCombinedConfig() {
//use a function for it because php does not allow
//assigning variables to the class members (expecting T_STRING)
return array(
//the order in which the backends are loaded.
//login only succeeds if all backend return true on login
//sending mail: the mail is sent with first backend that is able to send the mail
'backends' => array(
'i' => array(
'name' => 'BackendIMAP',
'config' => self::$BackendIMAP_config,
),
/*
'z' => array(
'name' => 'BackendZarafa',
'config' => self::$BackendZarafa_config
),
'm' => array(
'name' => 'BackendMaildir',
'config' => self::$BackendMaildir_config,
),
'v' => array(
'name' => 'BackendVCardDir',
'config' => self::$BackendVCardDir_config,
),
*/
'c' => array(
'name' => 'BackendCalDAV',
'config' => self::$BackendCalDAV_config,
),
'l' => array(
'name' => 'BackendLDAP',
'config' => self::$BackendLDAP_config,
),
),
'delimiter' => '/',
//force one type of folder to one backend
//it must match one of the above defined backends
'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_TASK => 'c',
SYNC_FOLDER_TYPE_APPOINTMENT => 'c',
SYNC_FOLDER_TYPE_CONTACT => 'l',
SYNC_FOLDER_TYPE_NOTE => 'i',
SYNC_FOLDER_TYPE_JOURNAL => 'i',
SYNC_FOLDER_TYPE_OTHER => 'i',
SYNC_FOLDER_TYPE_USER_MAIL => 'i',
SYNC_FOLDER_TYPE_USER_APPOINTMENT => 'c',
SYNC_FOLDER_TYPE_USER_CONTACT => 'l',
SYNC_FOLDER_TYPE_USER_TASK => 'c',
SYNC_FOLDER_TYPE_USER_JOURNAL => 'i',
SYNC_FOLDER_TYPE_USER_NOTE => 'i',
SYNC_FOLDER_TYPE_UNKNOWN => 'i',
),
//creating a new folder in the root folder should create a folder in one backend
'rootcreatefolderbackend' => 'i',
);
}
}
?>
You PHP-Push will sync the following items: 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_TASK => 'c', SYNC_FOLDER_TYPE_APPOINTMENT => 'c', SYNC_FOLDER_TYPE_CONTACT => 'l', SYNC_FOLDER_TYPE_NOTE => 'i', SYNC_FOLDER_TYPE_JOURNAL => 'i', SYNC_FOLDER_TYPE_OTHER => 'i', SYNC_FOLDER_TYPE_USER_MAIL => 'i', SYNC_FOLDER_TYPE_USER_APPOINTMENT => 'c', SYNC_FOLDER_TYPE_USER_CONTACT => 'l', SYNC_FOLDER_TYPE_USER_TASK => 'c', SYNC_FOLDER_TYPE_USER_JOURNAL => 'i', SYNC_FOLDER_TYPE_USER_NOTE => 'i', SYNC_FOLDER_TYPE_UNKNOWN => 'i',
Its quite logic it advertises all those types then.
I just changed config.php to read as follows, and still all backends (mail, contacts, calendars, reminders) are offered when I add the account on iOS 5.1.1, so there is clearly something broken, because contacts etc are now not even mentioned in folderbackend:
'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_TASK => 'c',
SYNC_FOLDER_TYPE_APPOINTMENT => 'c',
SYNC_FOLDER_TYPE_CONTACT => 'l',
SYNC_FOLDER_TYPE_NOTE => 'z',
SYNC_FOLDER_TYPE_JOURNAL => 'z',
SYNC_FOLDER_TYPE_OTHER => 'i',
*/
SYNC_FOLDER_TYPE_USER_MAIL => 'i',
/*
SYNC_FOLDER_TYPE_USER_APPOINTMENT => 'c',
SYNC_FOLDER_TYPE_USER_CONTACT => 'l',
SYNC_FOLDER_TYPE_USER_TASK => 'c',
SYNC_FOLDER_TYPE_USER_JOURNAL => 'z',
SYNC_FOLDER_TYPE_USER_NOTE => 'z',
SYNC_FOLDER_TYPE_UNKNOWN => 'i',
*/
),
Latest trunk, based in 2.0final: I changed config.php to read as shown in the previous comment and still all backends (mail, contacts, calendars, reminders) are offered when I add the account on iOS 5.1.1, even though only Mail should show up.
Something is clearly broken here. Please reopen this issue.
There seem to be 2 issues here:
-
Backends are offered, even though they are not configured in backend/combined/config.php, as shown below: in theory only mail should be offered, in practice all 4 (mail, contacts, calendar, tasks) are offered.
-
Mail works as expected and configured. Surprisingly, even Contacts work (browsable, searchable etc) with the configuration below, even though it should not, because SYNC_FOLDER_TYPE_CONTACT does not even have a value...?
'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_TASK => 'c',
SYNC_FOLDER_TYPE_APPOINTMENT => 'c',
SYNC_FOLDER_TYPE_CONTACT => 'l',
SYNC_FOLDER_TYPE_NOTE => 'z',
SYNC_FOLDER_TYPE_JOURNAL => 'z',
SYNC_FOLDER_TYPE_OTHER => 'i',
*/
SYNC_FOLDER_TYPE_USER_MAIL => 'i',
/*
SYNC_FOLDER_TYPE_USER_APPOINTMENT => 'c',
SYNC_FOLDER_TYPE_USER_CONTACT => 'l',
SYNC_FOLDER_TYPE_USER_TASK => 'c',
SYNC_FOLDER_TYPE_USER_JOURNAL => 'z',
SYNC_FOLDER_TYPE_USER_NOTE => 'z',
SYNC_FOLDER_TYPE_UNKNOWN => 'i',
*/
),
Will investigate!
Was this solved? I'm having the same issue.
@Y-ME369 You should look to this: http://github.com/fmbiete/Z-Push-contrib , dupondje repo it's not maintained anymore and in mine you will find all these backends.
Hi fmbiete, I am using your repo at the moment (its great thanks!), but have the same issue of z-push offering other services when I have selected backendIMAP only. Any ideas? :/
All the services will be offered to the devices, always. If you only want backendIMAP don't use backendCombined; put in your config.php BackendIMAP and you are ready to go.
Ah, so there is no way to stop the other services from being offered to the device? Shame. Thanks, I am using backedIMAP exclusively as it is, I thought it might a bug somewhere. Cheers for your help.