Commit 9e4f0b8a authored by Manfred Kutas's avatar Manfred Kutas

ZP-823 Do not sync suggested contacts folder.

Released under the Affero GNU General Public License (AGPL) version 3.
parent 109eb8f7
......@@ -843,6 +843,7 @@ class MAPIProvider {
* @return SyncFolder
*/
public function GetFolder($folderprops) {
$folder = new SyncFolder();
$storeprops = $this->getStoreProps();
......@@ -851,7 +852,7 @@ class MAPIProvider {
if (isset($folderprops[PR_SOURCE_KEY]) && !isset($folderprops[PR_ENTRYID]) && !isset($folderprops[PR_CONTAINER_CLASS])) {
$entryid = mapi_msgstore_entryidfromsourcekey($this->store, $folderprops[PR_SOURCE_KEY]);
$mapifolder = mapi_msgstore_openentry($this->store, $entryid);
$folderprops = mapi_getprops($mapifolder, array(PR_DISPLAY_NAME, PR_PARENT_ENTRYID, PR_ENTRYID, PR_SOURCE_KEY, PR_PARENT_SOURCE_KEY, PR_CONTAINER_CLASS, PR_ATTR_HIDDEN));
$folderprops = mapi_getprops($mapifolder, array(PR_DISPLAY_NAME, PR_PARENT_ENTRYID, PR_ENTRYID, PR_SOURCE_KEY, PR_PARENT_SOURCE_KEY, PR_CONTAINER_CLASS, PR_ATTR_HIDDEN, PR_EXTENDED_FOLDER_FLAGS));
ZLog::Write(LOGLEVEL_DEBUG, "MAPIProvider->GetFolder(): received insuffient of data from ICS. Fetching required data.");
}
......@@ -877,6 +878,16 @@ class MAPIProvider {
return false;
}
// ignore suggested contacts folder
if (isset($folderprops[PR_CONTAINER_CLASS]) && $folderprops[PR_CONTAINER_CLASS] == "IPF.Contact" && isset($folderprops[PR_EXTENDED_FOLDER_FLAGS])) {
// the PR_EXTENDED_FOLDER_FLAGS is a binary value which consists of subproperties. 070403000000 indicates a suggested contacts folder
$extendedFlags = bin2hex($folderprops[PR_EXTENDED_FOLDER_FLAGS]);
if (substr_count($extendedFlags, "070403000000") > 0) {
ZLog::Write(LOGLEVEL_DEBUG, sprintf("MAPIProvider->GetFolder(): folder '%s' should not be synchronized", $folderprops[PR_DISPLAY_NAME]));
return false;
}
}
$folder->serverid = bin2hex($folderprops[PR_SOURCE_KEY]);
if($folderprops[PR_PARENT_ENTRYID] == $storeprops[PR_IPM_SUBTREE_ENTRYID])
$folder->parentid = "0";
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment