Projects
Kolab:16:Enterprise
kolab-syncroton
Log In
Username
Password
We truncated the diff of some files because they were too big. If you want to see the full diff for every file,
click here
.
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 64
View file
kolab-syncroton.spec
Changed
@@ -37,7 +37,7 @@ %global upstream_version 2.4.2 Name: kolab-syncroton -Version: 2.4.2.16 +Version: 2.4.2.18 Release: 1%{?dist} Summary: ActiveSync for Kolab Groupware @@ -176,7 +176,14 @@ /bin/systemctl reload php-fpm.service || : fi -/usr/share/roundcubemail/bin/updatedb.sh \ + +%if 0%{?plesk} > 0 && 0%{?rhel} == 7 +php="/opt/plesk/php/7.4/bin/php" +%else +php="/usr/bin/php" +%endif + +${php} /usr/share/roundcubemail/bin/updatedb.sh \ --dir /usr/share/doc/kolab-syncroton/SQL/ \ --package syncroton \ >/dev/null 2>&1 || :
View file
debian.changelog
Changed
@@ -1,4 +1,4 @@ -kolab-syncroton (2.4.2.16-0~kolab1) unstable; urgency=low +kolab-syncroton (2.4.2.18-0~kolab1) unstable; urgency=low * Release version 2.4.2
View file
kolab-syncroton-2.4.2.tar.gz/.gitignore
Added
@@ -0,0 +1,10 @@ +*.patch +/config/config.inc.php +/config/defaults.inc.php +/composer.json +/composer.lock +/lib/plugins +/lib/ext/Roundcube +/logs/*.log +/tests/.phpunit.result.cache +/vendor
View file
kolab-syncroton-2.4.2.tar.gz/.php-cs-fixer.php
Changed
@@ -8,7 +8,7 @@ $finder = Finder::create() ->in(__DIR__) ->exclude( - 'lib/ext', + 'lib/ext/Roundcube', 'lib/plugins', 'vendor', )
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Backend/ABackend.php
Changed
@@ -19,22 +19,22 @@ { /** * the database adapter - * + * * @var Zend_Db_Adapter_Abstract */ protected $_db; - + protected $_tablePrefix; - + protected $_tableName; - + protected $_modelClassName; - + protected $_modelInterfaceName; - + /** * the constructor - * + * * @param Zend_Db_Adapter_Abstract $_db * @param string $_tablePrefix */ @@ -46,7 +46,7 @@ /** * create new device - * + * * @param Syncroton_Model_AEntry $model * @return Syncroton_Model_AEntry */ @@ -55,70 +55,71 @@ if (! $model instanceof $this->_modelInterfaceName) { throw new InvalidArgumentException('$model must be instance of ' . $this->_modelInterfaceName); } - + $data = $this->_convertModelToArray($model); - - $data'id' = sha1(mt_rand(). microtime()); + + $data'id' = sha1(mt_rand() . microtime()); $this->_db->insert($this->_tablePrefix . $this->_tableName, $data); - + return $this->get($data'id'); } - + /** * convert iteratable object to array - * + * * @param Syncroton_Model_AEntry $model * @return array */ protected function _convertModelToArray($model) { - $data = array(); - + $data = ; + foreach ($model as $key => $value) { if ($value instanceof DateTime) { $value = $value->format('Y-m-d H:i:s'); } elseif (is_object($value) && isset($value->id)) { $value = $value->id; } - + $data$this->_fromCamelCase($key) = $value; } - + return $data; } - + /** - * @param string $_id + * @param string $id + * * @throws Syncroton_Exception_NotFound - * @return Syncroton_Model_IDevice + * @return Syncroton_Model_AEntry */ public function get($id) { $id = $id instanceof $this->_modelInterfaceName ? $id->id : $id; - + if (empty($id)) { throw new Syncroton_Exception_NotFound('id can not be empty'); } - + $select = $this->_db->select() ->from($this->_tablePrefix . $this->_tableName) ->where('id = ?', $id); - + $stmt = $this->_db->query($select); $data = $stmt->fetch(); $stmt = null; # see https://bugs.php.net/bug.php?id=44081 - + if ($data === false) { throw new Syncroton_Exception_NotFound('id not found'); } return $this->_getObject($data); } - + /** * convert array to object - * + * * @param array $data * @return object */ @@ -126,30 +127,30 @@ { foreach ($data as $key => $value) { unset($data$key); - + if (!empty($value) && preg_match('/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}/', $value)) { # 2012-08-12 07:43:26 $value = new DateTime($value, new DateTimeZone('UTC')); } - + $data$this->_toCamelCase($key, false) = $value; } - + return new $this->_modelClassName($data); } - + /** * (non-PHPdoc) * @see Syncroton_Backend_IBackend::delete() */ public function delete($id) { - $id = $id instanceof $this->_modelInterfaceName ? $id->id : $id; - - $result = $this->_db->delete($this->_tablePrefix . $this->_tableName, array('id = ?' => $id)); - + $id = $id instanceof $this->_modelInterfaceName ? $id->id : $id; // @phpstan-ignore-line + + $result = $this->_db->delete($this->_tablePrefix . $this->_tableName, 'id = ?' => $id); + return (bool) $result; } - + /** * (non-PHPdoc) * @see Syncroton_Backend_IBackend::update() @@ -159,14 +160,14 @@ if (! $model instanceof $this->_modelInterfaceName) { throw new InvalidArgumentException('$model must be instanace of ' . $this->_modelInterfaceName); } - + $data = $this->_convertModelToArray($model); - - $this->_db->update($this->_tablePrefix . $this->_tableName, $data, array( - 'id = ?' => $model->id - )); - - return $this->get($model->id); + + $this->_db->update($this->_tablePrefix . $this->_tableName, $data, + 'id = ?' => $model->id, // @phpstan-ignore-line + ); + + return $this->get($model->id); // @phpstan-ignore-line } /** @@ -178,7 +179,7 @@ */ public function userAccounts($device) { - return array(); + return ; }
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Backend/Content.php
Changed
@@ -7,7 +7,7 @@ * @license http://www.tine20.org/licenses/lgpl.html LGPL Version 3 * @author Lars Kneschke <l.kneschke@metaways.de> * @copyright Copyright (c) 2009-2012 Metaways Infosystems GmbH (http://www.metaways.de) - * + * */ /** @@ -18,83 +18,87 @@ */ class Syncroton_Backend_Content extends Syncroton_Backend_ABackend implements Syncroton_Backend_IContent { - protected $_tableName = 'content'; - - protected $_modelClassName = 'Syncroton_Model_Content'; - - protected $_modelInterfaceName = 'Syncroton_Model_IContent'; - + protected $_tableName = 'content'; + + protected $_modelClassName = 'Syncroton_Model_Content'; + + protected $_modelInterfaceName = 'Syncroton_Model_IContent'; + /** - * mark state as deleted. The state gets removed finally, + * mark state as deleted. The state gets removed finally, * when the synckey gets validated during next sync. - * - * @param Syncroton_Model_IContent|string $_id + * + * @param Syncroton_Model_IContent|string $id + * + * @return bool */ public function delete($id) { $id = $id instanceof $this->_modelInterfaceName ? $id->id : $id; - - $this->_db->update($this->_tablePrefix . 'content', array( - 'is_deleted' => 1 - ), array( - 'id = ?' => $id - )); - + + $this->_db->update($this->_tablePrefix . 'content', + 'is_deleted' => 1, + , + 'id = ?' => $id, + ); + + return true; } - + /** * @param Syncroton_Model_IDevice|string $deviceId * @param Syncroton_Model_IFolder|string $folderId - * @param string $_contentId + * @param string $contentId * @return Syncroton_Model_IContent */ public function getContentState($deviceId, $folderId, $contentId) { $deviceId = $deviceId instanceof Syncroton_Model_IDevice ? $deviceId->id : $deviceId; $folderId = $folderId instanceof Syncroton_Model_IFolder ? $folderId->id : $folderId; - + $select = $this->_db->select() ->from($this->_tablePrefix . 'content') - ->where($this->_db->quoteIdentifier('device_id') . ' = ?', $deviceId) - ->where($this->_db->quoteIdentifier('folder_id') . ' = ?', $folderId) - ->where($this->_db->quoteIdentifier('contentid') . ' = ?', $contentId) + ->where($this->_db->quoteIdentifier('device_id') . ' = ?', $deviceId) + ->where($this->_db->quoteIdentifier('folder_id') . ' = ?', $folderId) + ->where($this->_db->quoteIdentifier('contentid') . ' = ?', $contentId) ->where($this->_db->quoteIdentifier('is_deleted') . ' = ?', 0); - - $stmt = $this->_db->query($select); - $data = $stmt->fetch(); - $stmt = null; # see https://bugs.php.net/bug.php?id=44081 - - if ($data === false) { - throw new Syncroton_Exception_NotFound('id not found'); - } - - return $this->_getObject($data); + + $stmt = $this->_db->query($select); + $data = $stmt->fetch(); + $stmt = null; # see https://bugs.php.net/bug.php?id=44081 + + if ($data === false) { + throw new Syncroton_Exception_NotFound('id not found'); + } + + return $this->_getObject($data); } - + /** * get array of ids which got send to the client for a given class * * @param Syncroton_Model_IDevice|string $deviceId * @param Syncroton_Model_IFolder|string $folderId + * @param int $syncKey * @return array */ - public function getFolderState($deviceId, $folderId) + public function getFolderState($deviceId, $folderId, $syncKey = null) { $deviceId = $deviceId instanceof Syncroton_Model_IDevice ? $deviceId->id : $deviceId; $folderId = $folderId instanceof Syncroton_Model_IFolder ? $folderId->id : $folderId; - + $select = $this->_db->select() ->from($this->_tablePrefix . 'content', 'contentid') - ->where($this->_db->quoteIdentifier('device_id') . ' = ?', $deviceId) - ->where($this->_db->quoteIdentifier('folder_id') . ' = ?', $folderId) + ->where($this->_db->quoteIdentifier('device_id') . ' = ?', $deviceId) + ->where($this->_db->quoteIdentifier('folder_id') . ' = ?', $folderId) ->where($this->_db->quoteIdentifier('is_deleted') . ' = ?', 0); - + $stmt = $this->_db->query($select); $result = $stmt->fetchAll(Zend_Db::FETCH_COLUMN); - + return $result; } - + /** * reset list of stored id * @@ -105,12 +109,12 @@ { $deviceId = $deviceId instanceof Syncroton_Model_IDevice ? $deviceId->id : $deviceId; $folderId = $folderId instanceof Syncroton_Model_IFolder ? $folderId->id : $folderId; - - $where = array( + + $where = $this->_db->quoteInto($this->_db->quoteIdentifier('device_id') . ' = ?', $deviceId), - $this->_db->quoteInto($this->_db->quoteIdentifier('folder_id') . ' = ?', $folderId) - ); - + $this->_db->quoteInto($this->_db->quoteIdentifier('folder_id') . ' = ?', $folderId), + ; + $this->_db->delete($this->_tablePrefix . 'content', $where); } }
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Backend/Device.php
Changed
@@ -18,15 +18,15 @@ class Syncroton_Backend_Device extends Syncroton_Backend_ABackend implements Syncroton_Backend_IDevice { protected $_tableName = 'device'; - + protected $_modelClassName = 'Syncroton_Model_Device'; - + protected $_modelInterfaceName = 'Syncroton_Model_IDevice'; - + /** * return device for this user - * - * @param string $userId + * + * @param string $ownerId * @param string $deviceId * @throws Syncroton_Exception_NotFound * @return Syncroton_Model_Device @@ -37,10 +37,10 @@ ->from($this->_tablePrefix . $this->_tableName) ->where('owner_id = ?', $ownerId) ->where('deviceid = ?', $deviceId); - + $stmt = $this->_db->query($select); $data = $stmt->fetch(); - + if ($data === false) { throw new Syncroton_Exception_NotFound('id not found'); } @@ -49,9 +49,9 @@ unset($data$key); $data$this->_toCamelCase($key, false) = $value; } - + $model = new $this->_modelClassName($data); - + return $model; } @@ -64,7 +64,7 @@ */ public function userAccounts($device) { - return array(); + return ; } /** @@ -72,7 +72,7 @@ * * @param array $request Oof/Get request data * - * @return Syncroton_Model_Oof Response object or NULL if OOF is not supported + * @return Syncroton_Model_Oof|null Response object or NULL if OOF is not supported * @throws Syncroton_Exception_Status */ public function getOOF($request)
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Backend/Folder.php
Changed
@@ -7,7 +7,7 @@ * @license http://www.tine20.org/licenses/lgpl.html LGPL Version 3 * @author Lars Kneschke <l.kneschke@metaways.de> * @copyright Copyright (c) 2009-2012 Metaways Infosystems GmbH (http://www.metaways.de) - * + * */ /** @@ -19,11 +19,11 @@ class Syncroton_Backend_Folder extends Syncroton_Backend_ABackend implements Syncroton_Backend_IFolder { protected $_tableName = 'folder'; - + protected $_modelClassName = 'Syncroton_Model_Folder'; - + protected $_modelInterfaceName = 'Syncroton_Model_IFolder'; - + /** * (non-PHPdoc) * @see Syncroton_Backend_IFolder::getFolder() @@ -31,22 +31,22 @@ public function getFolder($deviceId, $folderId) { $deviceId = $deviceId instanceof Syncroton_Model_IDevice ? $deviceId->id : $deviceId; - + $select = $this->_db->select() ->from($this->_tablePrefix . $this->_tableName) ->where($this->_db->quoteIdentifier('device_id') . ' = ?', $deviceId) - ->where($this->_db->quoteIdentifier('folderid') . ' = ?', $folderId); - + ->where($this->_db->quoteIdentifier('folderid') . ' = ?', $folderId); + $stmt = $this->_db->query($select); $data = $stmt->fetch(); if ($data === false) { throw new Syncroton_Exception_NotFound('id not found'); } - + return $this->_getObject($data); } - + /** * (non-PHPdoc) * @see Syncroton_Backend_IFolder::getFolderState() @@ -54,22 +54,22 @@ public function getFolderState($deviceId, $class) { $deviceId = $deviceId instanceof Syncroton_Model_IDevice ? $deviceId->id : $deviceId; - + $select = $this->_db->select() ->from($this->_tablePrefix . $this->_tableName) ->where($this->_db->quoteIdentifier('device_id') . ' = ?', $deviceId) - ->where($this->_db->quoteIdentifier('class') . ' = ?', $class); - - $result = array(); - + ->where($this->_db->quoteIdentifier('class') . ' = ?', $class); + + $result = ; + $stmt = $this->_db->query($select); while ($data = $stmt->fetch()) { - $result$data'folderid' = $this->_getObject($data); + $result$data'folderid' = $this->_getObject($data); } - + return $result; } - + /** * (non-PHPdoc) * @see Syncroton_Backend_IFolder::resetState() @@ -77,11 +77,11 @@ public function resetState($deviceId) { $deviceId = $deviceId instanceof Syncroton_Model_IDevice ? $deviceId->id : $deviceId; - - $where = array( - $this->_db->quoteInto($this->_db->quoteIdentifier('device_id') . ' = ?', $deviceId) - ); - + + $where = + $this->_db->quoteInto($this->_db->quoteIdentifier('device_id') . ' = ?', $deviceId), + ; + $this->_db->delete($this->_tablePrefix . $this->_tableName, $where); } @@ -104,19 +104,15 @@ case 'displayName': case 'parentId': return strtolower($string); - break; - + case 'serverId': return 'folderid'; - break; - + default: return parent::_fromCamelCase($string); - - break; } } - + /** * (non-PHPdoc) * @see Syncroton_Backend_ABackend::_toCamelCase() @@ -126,20 +122,15 @@ switch ($string) { case 'displayname': return 'displayName'; - break; - + case 'parentid': return 'parentId'; - break; - + case 'folderid': return 'serverId'; - break; - + default: return parent::_toCamelCase($string, $ucFirst); - - break; } } }
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Backend/IBackend.php
Changed
@@ -20,32 +20,32 @@ /** * Create a new device * - * @param Syncroton_Model_IDevice $device - * @return Syncroton_Model_IDevice + * @param Syncroton_Model_IEntry $model + * @return Syncroton_Model_IEntry */ public function create($model); - + /** * Deletes one or more existing devices * - * @param string|array $_id - * @return void + * @param string|Syncroton_Model_IEntry $id + * @return bool */ public function delete($id); - + /** * Return a single device * - * @param string $_id - * @return Syncroton_Model_IDevice + * @param string $id + * @return Syncroton_Model_IEntry */ public function get($id); - + /** * Upates an existing persistent record * - * @param Syncroton_Model_IDevice $_device - * @return Syncroton_Model_IDevice + * @param Syncroton_Model_IEntry $model + * @return Syncroton_Model_IEntry */ public function update($model); }
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Backend/IContent.php
Changed
@@ -31,9 +31,10 @@ * * @param Syncroton_Model_IDevice|string $_deviceId * @param Syncroton_Model_IFolder|string $_folderId + * @param int $_syncKey * @return array */ - public function getFolderState($_deviceId, $_folderId); + public function getFolderState($_deviceId, $_folderId, $_syncKey = null); /** * reset list of stored id
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Backend/ISyncState.php
Changed
@@ -19,14 +19,6 @@ interface Syncroton_Backend_ISyncState extends Syncroton_Backend_IBackend { /** - * create new sync state - * - * @param Syncroton_Model_IDevice $model - * @param boolean $keepPreviousSyncState - */ - #public function create($model, $keepPreviousSyncState = true); - - /** * always returns the latest syncstate * * @param Syncroton_Model_IDevice|string $deviceId @@ -35,15 +27,18 @@ */ public function getSyncState($deviceId, $folderId); - public function resetState($_deviceId, $_type); + public function haveNext($deviceId, $folderId, $syncKey); + + public function resetState($deviceId, $type); /** * get array of ids which got send to the client for a given class * - * @param Syncroton_Model_Device $_deviceId - * @param string $_class + * @param Syncroton_Model_IDevice|string $deviceId + * @param Syncroton_Model_IFolder|string $folderId + * @param int $syncKey * * @return Syncroton_Model_SyncState|false */ - public function validate($_deviceId, $_syncKey, $_type); + public function validate($deviceId, $folderId, $syncKey); }
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Backend/Policy.php
Changed
@@ -15,57 +15,57 @@ * @package Syncroton * @subpackage Backend */ -class Syncroton_Backend_Policy extends Syncroton_Backend_ABackend #implements Syncroton_Backend_IDevice +class Syncroton_Backend_Policy extends Syncroton_Backend_ABackend { protected $_tableName = 'policy'; - + protected $_modelClassName = 'Syncroton_Model_Policy'; - + protected $_modelInterfaceName = 'Syncroton_Model_IPolicy'; - + /** * convert iteratable object to array - * - * @param unknown $model + * + * @param Syncroton_Model_IXMLEntry $model * @return array */ protected function _convertModelToArray($model) { $policyValues = $model->getProperties('Provision'); - - $policy = array(); - + + $policy = ; + foreach ($policyValues as $policyName) { - if ($model->$policyName !== NULL) { + if ($model->$policyName !== null) { $policy$policyName = $model->$policyName; } - + unset($model->$policyName); } $data = parent::_convertModelToArray($model); - + $data'json_policy' = Zend_Json::encode($policy); - + return $data; } - + /** * convert array to object - * + * * @param array $data * @return object */ protected function _getObject($data) { $policy = Zend_Json::decode($data'json_policy'); - + foreach ($policy as $policyKey => $policyValue) { $data$policyKey = $policyValue; } - + unset($data'json_policy'); - + return parent::_getObject($data); } }
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Backend/SyncState.php
Changed
@@ -7,7 +7,7 @@ * @license http://www.tine20.org/licenses/lgpl.html LGPL Version 3 * @author Lars Kneschke <l.kneschke@metaways.de> * @copyright Copyright (c) 2009-2012 Metaways Infosystems GmbH (http://www.metaways.de) - * + * */ /** @@ -18,12 +18,12 @@ */ class Syncroton_Backend_SyncState extends Syncroton_Backend_ABackend implements Syncroton_Backend_ISyncState { - protected $_tableName = 'synckey'; - - protected $_modelClassName = 'Syncroton_Model_SyncState'; + protected $_tableName = 'synckey'; + + protected $_modelClassName = 'Syncroton_Model_SyncState'; + + protected $_modelInterfaceName = 'Syncroton_Model_ISyncState'; - protected $_modelInterfaceName = 'Syncroton_Model_ISyncState'; - /** * (non-PHPdoc) * @see Syncroton_Backend_ISyncState::create() @@ -31,15 +31,15 @@ public function create($model, $keepPreviousSyncState = true) { $state = parent::create($model); - + if ($keepPreviousSyncState !== true) { // remove all other synckeys $this->_deleteOtherStates($state); } - + return $state; } - + /** * (non-PHPdoc) * @see Syncroton_Backend_ABackend::_convertModelToArray() @@ -47,46 +47,46 @@ protected function _convertModelToArray($model) { $model = parent::_convertModelToArray($model); - + $model'pendingdata' = isset($model'pendingdata') && is_array($model'pendingdata') ? Zend_Json::encode($model'pendingdata') : null; - + return $model; } - + /** - * + * * @param Syncroton_Model_ISyncState $state */ protected function _deleteOtherStates(Syncroton_Model_ISyncState $state) { // remove all other synckeys - $where = array( + $where = 'device_id = ?' => $state->deviceId, 'type = ?' => $state->type, - 'counter != ?' => $state->counter - ); - + 'counter != ?' => $state->counter, + ; + $this->_db->delete($this->_tablePrefix . $this->_tableName, $where); - + return true; - + } - + /** * (non-PHPdoc) * @see Syncroton_Backend_ABackend::_getObject() */ - protected function _getObject($data) + protected function _getObject($data) { $model = parent::_getObject($data); - - if ($model->pendingdata !== NULL) { - $model->pendingdata = Zend_Json::decode($model->pendingdata); + + if ($model->pendingdata !== null) { + $model->pendingdata = Zend_Json::decode($model->pendingdata); } - - return $model; + + return $model; } - + /** * (non-PHPdoc) * @see Syncroton_Backend_ISyncState::getSyncState() @@ -95,25 +95,25 @@ { $deviceId = $deviceId instanceof Syncroton_Model_IDevice ? $deviceId->id : $deviceId; $folderId = $folderId instanceof Syncroton_Model_IFolder ? $folderId->id : $folderId; - + $select = $this->_db->select() ->from($this->_tablePrefix . $this->_tableName) ->where($this->_db->quoteIdentifier('device_id') . ' = ?', $deviceId) - ->where($this->_db->quoteIdentifier('type') . ' = ?', $folderId) + ->where($this->_db->quoteIdentifier('type') . ' = ?', $folderId) ->order('counter DESC') ->limit(1); - - $stmt = $this->_db->query($select); + + $stmt = $this->_db->query($select); $data = $stmt->fetch(); - $stmt = null; # see https://bugs.php.net/bug.php?id=44081 - - if ($data === false) { - throw new Syncroton_Exception_NotFound('id not found'); - } - + $stmt = null; # see https://bugs.php.net/bug.php?id=44081 + + if ($data === false) { + throw new Syncroton_Exception_NotFound('id not found'); + } + return $this->_getObject($data); } - + /** * delete all stored synckeys for given type * @@ -124,20 +124,21 @@ { $deviceId = $deviceId instanceof Syncroton_Model_IDevice ? $deviceId->id : $deviceId; $folderId = $folderId instanceof Syncroton_Model_IFolder ? $folderId->id : $folderId; - - $where = array( + + $where = $this->_db->quoteInto($this->_db->quoteIdentifier('device_id') . ' = ?', $deviceId), - $this->_db->quoteInto($this->_db->quoteIdentifier('type') . ' = ?', $folderId) - ); - + $this->_db->quoteInto($this->_db->quoteIdentifier('type') . ' = ?', $folderId), + ; + $this->_db->delete($this->_tablePrefix . $this->_tableName, $where); } - + /** * get array of ids which got send to the client for a given class * - * @param Syncroton_Model_IDevice|string $deviceId - * @param Syncroton_Model_IFolder|string $folderId + * @param Syncroton_Model_IDevice|string $deviceId + * @param Syncroton_Model_IFolder|string $folderId + * @param int $syncKey * * @return Syncroton_Model_SyncState|false */ @@ -145,65 +146,70 @@ { $deviceId = $deviceId instanceof Syncroton_Model_IDevice ? $deviceId->id : $deviceId; $folderId = $folderId instanceof Syncroton_Model_IFolder ? $folderId->id : $folderId; - + $select = $this->_db->select() ->from($this->_tablePrefix . $this->_tableName) ->where($this->_db->quoteIdentifier('device_id') . ' = ?', $deviceId) - ->where($this->_db->quoteIdentifier('counter') . ' = ?', $syncKey) - ->where($this->_db->quoteIdentifier('type') . ' = ?', $folderId); - + ->where($this->_db->quoteIdentifier('counter') . ' = ?', $syncKey) + ->where($this->_db->quoteIdentifier('type') . ' = ?', $folderId); + $stmt = $this->_db->query($select); $data = $stmt->fetch(); $stmt = null; # see https://bugs.php.net/bug.php?id=44081 - + if ($data === false) { return false;
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Command/AutoDiscover.php
Changed
@@ -15,7 +15,7 @@ * @package Syncroton * @subpackage Command */ -class Syncroton_Command_AutoDiscover implements Syncroton_Command_ICommand +class Syncroton_Command_AutoDiscover extends Syncroton_Command_Wbxml { /** * the domDocucment containing the xml request from the client @@ -23,104 +23,105 @@ * @var DOMDocument */ protected $requestBody; - + protected $emailAddress; - - public $mobileSyncUrl; - - public $certEnrollUrl; - + + public $mobileSyncUrl; + + public $certEnrollUrl; + /** * constructor of this class - * - * @param DOMDocument $_requestBody - * @param Syncroton_Model_IDevice $_device - * @param string $_policyKey + * + * @param DOMDocument $requestBody + * @param Syncroton_Model_IDevice $device + * @param array $requestParams */ - public function __construct($requestBody, Syncroton_Model_IDevice $device = null, $policyKey = null) + // @phpstan-ignore-next-line + public function __construct($requestBody, Syncroton_Model_IDevice $device, $requestParams = ) { $this->requestBody = $requestBody; } - + /** - * process the incoming data + * process the incoming data */ public function handle() { $xpath = new DomXPath($this->requestBody); $xpath->registerNamespace('2006', 'http://schemas.microsoft.com/exchange/autodiscover/mobilesync/requestschema/2006'); - + $nodes = $xpath->query('//2006:Autodiscover/2006:Request/2006:EMailAddress'); if ($nodes->length === 0) { throw new Syncroton_Exception(); } - + $this->emailAddress = $nodes->item(0)->nodeValue; } - + /** * create the response - * + * * @return DOMDocument */ public function getResponse() { // Creates an instance of the DOMImplementation class $imp = new DOMImplementation(); - + // Creates a DOMDocument instance $document = $imp->createDocument("http://schemas.microsoft.com/exchange/autodiscover/mobilesync/requestschema/2006", 'Autodiscover'); $document->xmlVersion = '1.0'; $document->encoding = 'UTF-8'; $document->formatOutput = false; - + $response = $document->documentElement->appendChild($document->createElement('Response')); - + $user = $response->appendChild($document->createElement('User')); $user->appendChild($document->createElement('EMailAddress', $this->emailAddress)); - + $settings = $document->createElement('Settings'); - + if (!empty($this->mobileSyncUrl)) { $server = $document->createElement('Server'); - + $server->appendChild($document->createElement('Type', 'MobileSync')); - - $server->appendChild($document->createElement('Url', $this->mobileSyncUrl)); + + $server->appendChild($document->createElement('Url', $this->mobileSyncUrl)); $server->appendChild($document->createElement('Name', $this->mobileSyncUrl)); - + $settings->appendChild($server); } - + if (!empty($this->certEnrollUrl)) { $server = $document->createElement('Server'); - + $server->appendChild($document->createElement('Type', 'CertEnroll')); - - $server->appendChild($document->createElement('Url', $this->certEnrollUrl)); + + $server->appendChild($document->createElement('Url', $this->certEnrollUrl)); $server->appendChild($document->createElement('Name')); $server->appendChild($document->createElement('ServerData', 'CertEnrollTemplate')); - + $settings->appendChild($server); } - + if ($settings->hasChildNodes()) { $action = $response->appendChild($document->createElement('Action')); $action->appendChild($settings); } - + return $document; } - + /** * return headers of command - * + * * @return array list of headers */ public function getHeaders() { - return array( - 'Content-Type' => 'text/xml;charset=utf-8' - ); + return + 'Content-Type' => 'text/xml;charset=utf-8', + ; } }
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Command/FolderCreate.php
Changed
@@ -19,9 +19,9 @@ { protected $_defaultNameSpace = 'uri:FolderHierarchy'; protected $_documentElement = 'FolderCreate'; - + /** - * @var Syncroton_Model_Folder + * @var Syncroton_Model_IFolder */ protected $_folder; @@ -29,46 +29,49 @@ * @var int */ protected $_status; - + /** * parse FolderCreate request */ public function handle() { $xml = simplexml_import_dom($this->_requestBody); - + $syncKey = (int)$xml->SyncKey; - if ($this->_logger instanceof Zend_Log) + if ($this->_logger instanceof Zend_Log) { $this->_logger->debug(__METHOD__ . '::' . __LINE__ . " synckey is $syncKey"); - + } + if (!($this->_syncState = $this->_syncStateBackend->validate($this->_device, 'FolderSync', $syncKey)) instanceof Syncroton_Model_SyncState) { - if ($this->_logger instanceof Zend_Log) + if ($this->_logger instanceof Zend_Log) { $this->_logger->info(__METHOD__ . '::' . __LINE__ . " invalid synckey provided. FolderSync 0 needed."); + } $this->_status = Syncroton_Command_FolderSync::STATUS_INVALID_SYNC_KEY; return; } - + $folder = new Syncroton_Model_Folder($xml); - - if ($this->_logger instanceof Zend_Log) + + if ($this->_logger instanceof Zend_Log) { $this->_logger->debug(__METHOD__ . '::' . __LINE__ . " parentId: {$folder->parentId} displayName: {$folder->displayName}"); + } if (!strlen($folder->displayName)) { $this->_status = Syncroton_Command_FolderSync::STATUS_MISFORMATTED; return; } - + switch($folder->type) { case Syncroton_Command_FolderSync::FOLDERTYPE_CALENDAR_USER_CREATED: $folder->class = Syncroton_Data_Factory::CLASS_CALENDAR; break; - + case Syncroton_Command_FolderSync::FOLDERTYPE_CONTACT_USER_CREATED: $folder->class = Syncroton_Data_Factory::CLASS_CONTACTS; break; - + case Syncroton_Command_FolderSync::FOLDERTYPE_MAIL_USER_CREATED: $folder->class = Syncroton_Data_Factory::CLASS_EMAIL; break; @@ -76,11 +79,11 @@ case Syncroton_Command_FolderSync::FOLDERTYPE_NOTE_USER_CREATED: $folder->class = Syncroton_Data_Factory::CLASS_NOTES; break; - + case Syncroton_Command_FolderSync::FOLDERTYPE_TASK_USER_CREATED: $folder->class = Syncroton_Data_Factory::CLASS_TASKS; break; - + default: // unsupported type return; @@ -95,61 +98,65 @@ $this->_status = Syncroton_Command_FolderSync::STATUS_UNKNOWN_ERROR; } else { $this->_folder->class = $folder->class; - $this->_folder->deviceId = $this->_device; + $this->_folder->deviceId = $this->_device->id; $this->_folder->creationTime = $this->_syncTimeStamp; // Check if the folder already exists to avoid a duplicate insert attempt in db try { $this->_folderBackend->getFolder($this->_device, $this->_folder->serverId); - if ($this->_logger instanceof Zend_Log) + if ($this->_logger instanceof Zend_Log) { $this->_logger->info(__METHOD__ . '::' . __LINE__ . " Attempted to create a folder that already exists. parentId: {$folder->parentId} displayName: {$folder->displayName}"); + } // The folder already exists $this->_status = Syncroton_Command_FolderSync::STATUS_FOLDER_EXISTS; } catch (Syncroton_Exception_NotFound $e) { // This is the normal case - if ($this->_logger instanceof Zend_Log) + if ($this->_logger instanceof Zend_Log) { $this->_logger->debug(__METHOD__ . '::' . __LINE__ . " " . $e->getMessage()); + } $this->_folderBackend->create($this->_folder); } } } catch (Syncroton_Exception_Status $e) { - if ($this->_logger instanceof Zend_Log) + if ($this->_logger instanceof Zend_Log) { $this->_logger->warn(__METHOD__ . '::' . __LINE__ . " " . $e->getMessage()); + } $this->_status = $e->getCode(); } catch (Exception $e) { - if ($this->_logger instanceof Zend_Log) + if ($this->_logger instanceof Zend_Log) { $this->_logger->warn(__METHOD__ . '::' . __LINE__ . " " . $e->getMessage()); + } $this->_status = Syncroton_Command_FolderSync::STATUS_UNKNOWN_ERROR; } } - + /** * generate FolderCreate response */ public function getResponse() { $folderCreate = $this->_outputDom->documentElement; - + if ($this->_status) { $folderCreate->appendChild($this->_outputDom->createElementNS('uri:FolderHierarchy', 'Status', $this->_status)); } else { $this->_syncState->counter++; $this->_syncState->lastsync = $this->_syncTimeStamp; - + // store folder in state backend $this->_syncStateBackend->update($this->_syncState); - + // create xml output - $folderCreate->appendChild($this->_outputDom->createElementNS('uri:FolderHierarchy', 'Status', Syncroton_Command_FolderSync::STATUS_SUCCESS)); - $folderCreate->appendChild($this->_outputDom->createElementNS('uri:FolderHierarchy', 'SyncKey', $this->_syncState->counter)); + $folderCreate->appendChild($this->_outputDom->createElementNS('uri:FolderHierarchy', 'Status', Syncroton_Command_FolderSync::STATUS_SUCCESS)); + $folderCreate->appendChild($this->_outputDom->createElementNS('uri:FolderHierarchy', 'SyncKey', $this->_syncState->counter)); $folderCreate->appendChild($this->_outputDom->createElementNS('uri:FolderHierarchy', 'ServerId', $this->_folder->serverId)); } - + return $this->_outputDom; } }
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Command/FolderDelete.php
Changed
@@ -15,55 +15,57 @@ * @package Syncroton * @subpackage Command */ -class Syncroton_Command_FolderDelete extends Syncroton_Command_Wbxml -{ +class Syncroton_Command_FolderDelete extends Syncroton_Command_Wbxml +{ protected $_defaultNameSpace = 'uri:FolderHierarchy'; protected $_documentElement = 'FolderDelete'; - + /** - * @var Syncroton_Model_SyncState + * @var Syncroton_Model_IFolder */ protected $_folder; - + /** * parse FolderDelete request */ public function handle() { $xml = simplexml_import_dom($this->_requestBody); - + // parse xml request $syncKey = (int)$xml->SyncKey; - $serverId = (string)$xml->ServerId; - - if ($this->_logger instanceof Zend_Log) + $serverId = (string)$xml->ServerId; + + if ($this->_logger instanceof Zend_Log) { $this->_logger->debug(__METHOD__ . '::' . __LINE__ . " synckey is $syncKey"); - + } + if (!($this->_syncState = $this->_syncStateBackend->validate($this->_device, 'FolderSync', $syncKey)) instanceof Syncroton_Model_SyncState) { - return; + return; } - + try { $folder = $this->_folderBackend->getFolder($this->_device, $serverId); - + $dataController = Syncroton_Data_Factory::factory($folder->class, $this->_device, $this->_syncTimeStamp); - + // delete folder in data backend $dataController->deleteFolder($folder); - + } catch (Syncroton_Exception_NotFound $senf) { - if ($this->_logger instanceof Zend_Log) + if ($this->_logger instanceof Zend_Log) { $this->_logger->debug(__METHOD__ . '::' . __LINE__ . " " . $senf->getMessage()); - + } + return; } - + // delete folder in syncState backend $this->_folderBackend->delete($folder); - + $this->_folder = $folder; } - + /** * generate FolderDelete response * @@ -72,27 +74,28 @@ public function getResponse() { $folderDelete = $this->_outputDom->documentElement; - + if (!$this->_syncState instanceof Syncroton_Model_SyncState) { - if ($this->_logger instanceof Zend_Log) + if ($this->_logger instanceof Zend_Log) { $this->_logger->info(__METHOD__ . '::' . __LINE__ . " invalid synckey provided. FolderSync 0 needed."); + } $folderDelete->appendChild($this->_outputDom->createElementNS('uri:FolderHierarchy', 'Status', Syncroton_Command_FolderSync::STATUS_INVALID_SYNC_KEY)); - + } elseif (!$this->_folder instanceof Syncroton_Model_IFolder) { $folderDelete->appendChild($this->_outputDom->createElementNS('uri:FolderHierarchy', 'Status', Syncroton_Command_FolderSync::STATUS_FOLDER_NOT_FOUND)); - + } else { $this->_syncState->counter++; $this->_syncState->lastsync = $this->_syncTimeStamp; - + // store folder in state backend $this->_syncStateBackend->update($this->_syncState); - + // create xml output $folderDelete->appendChild($this->_outputDom->createElementNS('uri:FolderHierarchy', 'Status', Syncroton_Command_FolderSync::STATUS_SUCCESS)); $folderDelete->appendChild($this->_outputDom->createElementNS('uri:FolderHierarchy', 'SyncKey', $this->_syncState->counter)); } - + return $this->_outputDom; } }
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Command/FolderSync.php
Changed
@@ -15,52 +15,52 @@ * @package Syncroton * @subpackage Command */ -class Syncroton_Command_FolderSync extends Syncroton_Command_Wbxml +class Syncroton_Command_FolderSync extends Syncroton_Command_Wbxml { - const STATUS_SUCCESS = 1; - const STATUS_FOLDER_EXISTS = 2; - const STATUS_IS_SPECIAL_FOLDER = 3; - const STATUS_FOLDER_NOT_FOUND = 4; - const STATUS_PARENT_FOLDER_NOT_FOUND = 5; - const STATUS_SERVER_ERROR = 6; - const STATUS_ACCESS_DENIED = 7; - const STATUS_REQUEST_TIMED_OUT = 8; - const STATUS_INVALID_SYNC_KEY = 9; - const STATUS_MISFORMATTED = 10; - const STATUS_UNKNOWN_ERROR = 11; + public const STATUS_SUCCESS = 1; + public const STATUS_FOLDER_EXISTS = 2; + public const STATUS_IS_SPECIAL_FOLDER = 3; + public const STATUS_FOLDER_NOT_FOUND = 4; + public const STATUS_PARENT_FOLDER_NOT_FOUND = 5; + public const STATUS_SERVER_ERROR = 6; + public const STATUS_ACCESS_DENIED = 7; + public const STATUS_REQUEST_TIMED_OUT = 8; + public const STATUS_INVALID_SYNC_KEY = 9; + public const STATUS_MISFORMATTED = 10; + public const STATUS_UNKNOWN_ERROR = 11; /** * some usefull constants for working with the xml files */ - const FOLDERTYPE_GENERIC_USER_CREATED = 1; - const FOLDERTYPE_INBOX = 2; - const FOLDERTYPE_DRAFTS = 3; - const FOLDERTYPE_DELETEDITEMS = 4; - const FOLDERTYPE_SENTMAIL = 5; - const FOLDERTYPE_OUTBOX = 6; - const FOLDERTYPE_TASK = 7; - const FOLDERTYPE_CALENDAR = 8; - const FOLDERTYPE_CONTACT = 9; - const FOLDERTYPE_NOTE = 10; - const FOLDERTYPE_JOURNAL = 11; - const FOLDERTYPE_MAIL_USER_CREATED = 12; - const FOLDERTYPE_CALENDAR_USER_CREATED = 13; - const FOLDERTYPE_CONTACT_USER_CREATED = 14; - const FOLDERTYPE_TASK_USER_CREATED = 15; - const FOLDERTYPE_JOURNAL_USER_CREATED = 16; - const FOLDERTYPE_NOTE_USER_CREATED = 17; - const FOLDERTYPE_UNKOWN = 18; - + public const FOLDERTYPE_GENERIC_USER_CREATED = 1; + public const FOLDERTYPE_INBOX = 2; + public const FOLDERTYPE_DRAFTS = 3; + public const FOLDERTYPE_DELETEDITEMS = 4; + public const FOLDERTYPE_SENTMAIL = 5; + public const FOLDERTYPE_OUTBOX = 6; + public const FOLDERTYPE_TASK = 7; + public const FOLDERTYPE_CALENDAR = 8; + public const FOLDERTYPE_CONTACT = 9; + public const FOLDERTYPE_NOTE = 10; + public const FOLDERTYPE_JOURNAL = 11; + public const FOLDERTYPE_MAIL_USER_CREATED = 12; + public const FOLDERTYPE_CALENDAR_USER_CREATED = 13; + public const FOLDERTYPE_CONTACT_USER_CREATED = 14; + public const FOLDERTYPE_TASK_USER_CREATED = 15; + public const FOLDERTYPE_JOURNAL_USER_CREATED = 16; + public const FOLDERTYPE_NOTE_USER_CREATED = 17; + public const FOLDERTYPE_UNKOWN = 18; + protected $_defaultNameSpace = 'uri:FolderHierarchy'; protected $_documentElement = 'FolderSync'; - - protected $_classes = array( + + protected $_classes = Syncroton_Data_Factory::CLASS_CALENDAR, Syncroton_Data_Factory::CLASS_CONTACTS, Syncroton_Data_Factory::CLASS_EMAIL, Syncroton_Data_Factory::CLASS_NOTES, - Syncroton_Data_Factory::CLASS_TASKS - ); + Syncroton_Data_Factory::CLASS_TASKS, + ; /** * @var string @@ -74,42 +74,44 @@ { $xml = simplexml_import_dom($this->_requestBody); $syncKey = (int)$xml->SyncKey; - - if ($this->_logger instanceof Zend_Log) + + if ($this->_logger instanceof Zend_Log) { $this->_logger->debug(__METHOD__ . '::' . __LINE__ . " synckey is $syncKey"); - + } + if ($syncKey === 0) { - $this->_syncState = new Syncroton_Model_SyncState(array( + $this->_syncState = new Syncroton_Model_SyncState( 'device_id' => $this->_device, 'counter' => 0, 'type' => 'FolderSync', - 'lastsync' => $this->_syncTimeStamp - )); - + 'lastsync' => $this->_syncTimeStamp, + ); + // reset state of foldersync $this->_syncStateBackend->resetState($this->_device, 'FolderSync'); - + return; - } - + } + if (!($this->_syncState = $this->_syncStateBackend->validate($this->_device, 'FolderSync', $syncKey)) instanceof Syncroton_Model_SyncState) { $this->_syncStateBackend->resetState($this->_device, 'FolderSync'); } } - + /** * generate FolderSync response - * + * * @todo changes are missing in response (folder got renamed for example) */ public function getResponse() { $folderSync = $this->_outputDom->documentElement; - + // invalid synckey provided if (!$this->_syncState instanceof Syncroton_Model_SyncState) { - if ($this->_logger instanceof Zend_Log) + if ($this->_logger instanceof Zend_Log) { $this->_logger->info(__METHOD__ . '::' . __LINE__ . " invalid synckey provided. FolderSync 0 needed."); + } $folderSync->appendChild($this->_outputDom->createElementNS('uri:FolderHierarchy', 'Status', self::STATUS_INVALID_SYNC_KEY)); return $this->_outputDom; @@ -120,43 +122,46 @@ $optionsCommand = new Syncroton_Command_Options(); $this->_headers = array_merge($this->_headers, $optionsCommand->getHeaders()); } - - $adds = array(); - $updates = array(); - $deletes = array(); + + $adds = ; + $updates = ; + $deletes = ; foreach($this->_classes as $class) { try { $dataController = Syncroton_Data_Factory::factory($class, $this->_device, $this->_syncTimeStamp); } catch (Exception $e) { // backend not defined - if ($this->_logger instanceof Zend_Log) + if ($this->_logger instanceof Zend_Log) { $this->_logger->info(__METHOD__ . '::' . __LINE__ . " no data backend defined for class: " . $class); + } continue; } try { // retrieve all folders available in data backend $serverFolders = $dataController->getAllFolders(); - + // retrieve all folders sent to client $clientFolders = $this->_folderBackend->getFolderState($this->_device, $class); - + if ($this->_syncState->counter > 0) { // retrieve all folders changed since last sync $changedFolders = $dataController->getChangedFolders($this->_syncState->lastsync, $this->_syncTimeStamp); } else { - $changedFolders = array(); + $changedFolders = ; } - + // only folders which were sent to the client already are allowed to be in $changedFolders $changedFolders = array_intersect_key($changedFolders, $clientFolders); - + } catch (Exception $e) { - if ($this->_logger instanceof Zend_Log) + if ($this->_logger instanceof Zend_Log) { $this->_logger->crit(__METHOD__ . '::' . __LINE__ . " Syncing folder hierarchy failed: " . $e->getMessage()); - if ($this->_logger instanceof Zend_Log) + }
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Command/FolderUpdate.php
Changed
@@ -15,22 +15,22 @@ * @package Syncroton * @subpackage Command */ -class Syncroton_Command_FolderUpdate extends Syncroton_Command_Wbxml -{ +class Syncroton_Command_FolderUpdate extends Syncroton_Command_Wbxml +{ protected $_defaultNameSpace = 'uri:FolderHierarchy'; protected $_documentElement = 'FolderUpdate'; - + /** - * @var Syncroton_Model_SyncState + * @var Syncroton_Model_IFolder */ protected $_folder; - + /** - * + * * @var Syncroton_Model_Folder */ protected $_folderUpdate; - + /** * parse FolderUpdate request * @@ -38,72 +38,76 @@ public function handle() { $xml = simplexml_import_dom($this->_requestBody); - + $syncKey = (int)$xml->SyncKey; - - if ($this->_logger instanceof Zend_Log) + + if ($this->_logger instanceof Zend_Log) { $this->_logger->debug(__METHOD__ . '::' . __LINE__ . " synckey is $syncKey"); + } if (!($this->_syncState = $this->_syncStateBackend->validate($this->_device, 'FolderSync', $syncKey)) instanceof Syncroton_Model_SyncState) { return; } - + $updatedFolder = new Syncroton_Model_Folder($xml); - - if ($this->_logger instanceof Zend_Log) - $this->_logger->debug(__METHOD__ . '::' . __LINE__ . " parentId: {$updatedFolder->parentId} displayName: {$updatedFolder->displayName}"); - + + if ($this->_logger instanceof Zend_Log) { + $this->_logger->debug(__METHOD__ . '::' . __LINE__ . " parentId: {$updatedFolder->parentId} displayName: {$updatedFolder->displayName}"); + } + try { $folder = $this->_folderBackend->getFolder($this->_device, $updatedFolder->serverId); - + $folder->displayName = $updatedFolder->displayName; $folder->parentId = $updatedFolder->parentId; - + $dataController = Syncroton_Data_Factory::factory($folder->class, $this->_device, $this->_syncTimeStamp); - + // update folder in data backend $dataController->updateFolder($folder); - + } catch (Syncroton_Exception_NotFound $senf) { - if ($this->_logger instanceof Zend_Log) + if ($this->_logger instanceof Zend_Log) { $this->_logger->debug(__METHOD__ . '::' . __LINE__ . " " . $senf->getMessage()); - + } + return; } - + // update folder status in Syncroton backend - $this->_folder = $this->_folderBackend->update($folder); + $this->_folder = $this->_folderBackend->update($folder); // @phpstan-ignore-line } - + /** * generate FolderUpdate response * * @todo currently we support only the main folder which contains all contacts/tasks/events/notes per class */ - public function getResponse($_keepSession = FALSE) + public function getResponse($_keepSession = false) { $folderUpdate = $this->_outputDom->documentElement; - + if (!$this->_syncState instanceof Syncroton_Model_SyncState) { - if ($this->_logger instanceof Zend_Log) + if ($this->_logger instanceof Zend_Log) { $this->_logger->info(__METHOD__ . '::' . __LINE__ . " invalid synckey provided. FolderSync 0 needed."); - $folderUpdate->appendChild($this->_outputDom->createElementNS('uri:FolderHierarchy', 'Status', Syncroton_Command_FolderSync::STATUS_INVALID_SYNC_KEY)); - - } elseif (!$this->_folder instanceof Syncroton_Model_IFolder) { - $folderUpdate->appendChild($this->_outputDom->createElementNS('uri:FolderHierarchy', 'Status', Syncroton_Command_FolderSync::STATUS_FOLDER_NOT_FOUND)); - + } + $folderUpdate->appendChild($this->_outputDom->createElementNS('uri:FolderHierarchy', 'Status', Syncroton_Command_FolderSync::STATUS_INVALID_SYNC_KEY)); + + } elseif (!$this->_folder instanceof Syncroton_Model_IFolder) { + $folderUpdate->appendChild($this->_outputDom->createElementNS('uri:FolderHierarchy', 'Status', Syncroton_Command_FolderSync::STATUS_FOLDER_NOT_FOUND)); + } else { $this->_syncState->counter++; $this->_syncState->lastsync = $this->_syncTimeStamp; - + // store folder in state backend $this->_syncStateBackend->update($this->_syncState); - + // create xml output - $folderUpdate->appendChild($this->_outputDom->createElementNS('uri:FolderHierarchy', 'Status', Syncroton_Command_FolderSync::STATUS_SUCCESS)); + $folderUpdate->appendChild($this->_outputDom->createElementNS('uri:FolderHierarchy', 'Status', Syncroton_Command_FolderSync::STATUS_SUCCESS)); $folderUpdate->appendChild($this->_outputDom->createElementNS('uri:FolderHierarchy', 'SyncKey', $this->_syncState->counter)); } - + return $this->_outputDom; - } + } }
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Command/GetAttachment.php
Changed
@@ -22,44 +22,42 @@ * @var string */ protected $_attachmentName; - + protected $_skipValidatePolicyKey = true; - + /** - * process the XML file and add, change, delete or fetches data - * - * @return resource + * process the XML file and add, change, delete or fetches data */ public function handle() { $this->_attachmentName = $this->_requestParameters'attachmentName'; } - + /** * this function generates the response for the client - * + * * @return void */ public function getResponse() { $dataController = Syncroton_Data_Factory::factory(Syncroton_Data_Factory::CLASS_EMAIL, $this->_device, $this->_syncTimeStamp); - + $attachment = $dataController->getFileReference($this->_attachmentName); - + if (PHP_SAPI !== 'cli') { - // cache for 3600 seconds + // cache for 3600 seconds $maxAge = 3600; - $now = new DateTime('now', new DateTimeZone('UTC')); - header('Cache-Control: private, max-age=' . $maxAge); - header("Expires: " . gmdate('D, d M Y H:i:s', $now->modify("+{$maxAge} sec")->getTimestamp()) . " GMT"); - - // overwrite Pragma header from session - header("Pragma: cache"); - - #header('Content-Disposition: attachment; filename="' . $filename . '"'); - header("Content-Type: " . $attachment->contentType); + $now = new DateTime('now', new DateTimeZone('UTC')); + header('Cache-Control: private, max-age=' . $maxAge); + header("Expires: " . gmdate('D, d M Y H:i:s', $now->modify("+{$maxAge} sec")->getTimestamp()) . " GMT"); + + // overwrite Pragma header from session + header("Pragma: cache"); + + #header('Content-Disposition: attachment; filename="' . $filename . '"'); + header("Content-Type: " . $attachment->contentType); } - + if (is_resource($attachment->data)) { fpassthru($attachment->data); } else {
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Command/GetItemEstimate.php
Changed
@@ -15,73 +15,75 @@ * @package Syncroton * @subpackage Command */ -class Syncroton_Command_GetItemEstimate extends Syncroton_Command_Wbxml +class Syncroton_Command_GetItemEstimate extends Syncroton_Command_Wbxml { - const STATUS_SUCCESS = 1; - const STATUS_INVALID_COLLECTION = 2; - const STATUS_SYNC_STATE_NOT_PRIMED = 3; - const STATUS_INVALID_SYNC_KEY = 4; - + public const STATUS_SUCCESS = 1; + public const STATUS_INVALID_COLLECTION = 2; + public const STATUS_SYNC_STATE_NOT_PRIMED = 3; + public const STATUS_INVALID_SYNC_KEY = 4; + protected $_defaultNameSpace = 'uri:ItemEstimate'; protected $_documentElement = 'GetItemEstimate'; - + /** * list of collections * * @var array */ - protected $_collections = array(); - + protected $_collections = ; + /** */ public function handle() { $xml = simplexml_import_dom($this->_requestBody); - + foreach ($xml->Collections->Collection as $xmlCollection) { - + // fetch values from a different namespace $airSyncValues = $xmlCollection->children('uri:AirSync'); - - $collectionData = array( + + $collectionData = 'syncKey' => (int)$airSyncValues->SyncKey, 'collectionId' => (string) $xmlCollection->CollectionId, 'class' => isset($xmlCollection->Class) ? (string) $xmlCollection->Class : null, - 'filterType' => isset($airSyncValues->Options) && isset($airSyncValues->Options->FilterType) ? (int)$airSyncValues->Options->FilterType : 0 - ); - - if ($this->_logger instanceof Zend_Log) + 'filterType' => isset($airSyncValues->Options) && isset($airSyncValues->Options->FilterType) ? (int)$airSyncValues->Options->FilterType : 0, + ; + + if ($this->_logger instanceof Zend_Log) { $this->_logger->info(__METHOD__ . '::' . __LINE__ . " synckey is {$collectionData'syncKey'} class: {$collectionData'class'} collectionid: {$collectionData'collectionId'} filtertype: {$collectionData'filterType'}"); - + } + try { // does the folder exist? $collectionData'folder' = $this->_folderBackend->getFolder($this->_device, $collectionData'collectionId'); $collectionData'folder'->lastfiltertype = $collectionData'filterType'; - + if($collectionData'syncKey' === 0) { - $collectionData'syncState' = new Syncroton_Model_SyncState(array( + $collectionData'syncState' = new Syncroton_Model_SyncState( 'device_id' => $this->_device, 'counter' => 0, 'type' => $collectionData'folder', - 'lastsync' => $this->_syncTimeStamp - )); - + 'lastsync' => $this->_syncTimeStamp, + ); + // reset sync state for this folder $this->_syncStateBackend->resetState($this->_device, $collectionData'folder'); $this->_contentStateBackend->resetState($this->_device, $collectionData'folder'); - + } else { $collectionData'syncState' = $this->_syncStateBackend->validate($this->_device, $collectionData'folder', $collectionData'syncKey'); } } catch (Syncroton_Exception_NotFound $senf) { - if ($this->_logger instanceof Zend_Log) + if ($this->_logger instanceof Zend_Log) { $this->_logger->debug(__METHOD__ . '::' . __LINE__ . " " . $senf->getMessage()); + } } - + $this->_collections$collectionData'collectionId' = $collectionData; } - } - + } + /** * (non-PHPdoc) * @see Syncroton_Command_Wbxml::getResponse() @@ -89,41 +91,43 @@ public function getResponse() { $itemEstimate = $this->_outputDom->documentElement; - + foreach($this->_collections as $collectionData) { $response = $itemEstimate->appendChild($this->_outputDom->createElementNS('uri:ItemEstimate', 'Response')); // invalid collectionid provided if (empty($collectionData'folder')) { - if ($this->_logger instanceof Zend_Log) + if ($this->_logger instanceof Zend_Log) { $this->_logger->warn(__METHOD__ . '::' . __LINE__ . " folder does not exist"); - + } + $response->appendChild($this->_outputDom->createElementNS('uri:ItemEstimate', 'Status', self::STATUS_INVALID_COLLECTION)); $collection = $response->appendChild($this->_outputDom->createElementNS('uri:ItemEstimate', 'Collection')); $collection->appendChild($this->_outputDom->createElementNS('uri:ItemEstimate', 'CollectionId', $collectionData'collectionId')); $collection->appendChild($this->_outputDom->createElementNS('uri:ItemEstimate', 'Estimate', 0)); - + } elseif (! ($collectionData'syncState' instanceof Syncroton_Model_ISyncState)) { - if ($this->_logger instanceof Zend_Log) + if ($this->_logger instanceof Zend_Log) { $this->_logger->warn(__METHOD__ . '::' . __LINE__ . " invalid synckey ${collectionData'syncKey'} provided"); + } /* * Android phones (and maybe others) don't take care about status 4(INVALID_SYNC_KEY) * To solve the problem we always return status 1(SUCCESS) even the sync key is invalid with Estimate set to 1. * This way the phone gets forced to sync. Handling invalid synckeys during sync command works without any problems. - * + * $response->appendChild($this->_outputDom->createElementNS('uri:ItemEstimate', 'Status', self::STATUS_INVALID_SYNC_KEY)); $collection = $response->appendChild($this->_outputDom->createElementNS('uri:ItemEstimate', 'Collection')); - $collection->appendChild($this->_outputDom->createElementNS('uri:ItemEstimate', 'CollectionId', $collectionData'collectionId')); + $collection->appendChild($this->_outputDom->createElementNS('uri:ItemEstimate', 'CollectionId', $collectionData'collectionId')); $collection->appendChild($this->_outputDom->createElementNS('uri:ItemEstimate', 'Estimate', 0)); */ - + $response->appendChild($this->_outputDom->createElementNS('uri:ItemEstimate', 'Status', self::STATUS_SUCCESS)); $collection = $response->appendChild($this->_outputDom->createElementNS('uri:ItemEstimate', 'Collection')); - $collection->appendChild($this->_outputDom->createElementNS('uri:ItemEstimate', 'CollectionId', $collectionData'collectionId')); - $collection->appendChild($this->_outputDom->createElementNS('uri:ItemEstimate', 'Estimate', 1)); + $collection->appendChild($this->_outputDom->createElementNS('uri:ItemEstimate', 'CollectionId', $collectionData'collectionId')); + $collection->appendChild($this->_outputDom->createElementNS('uri:ItemEstimate', 'Estimate', 1)); } else { $dataController = Syncroton_Data_Factory::factory($collectionData'folder'->class, $this->_device, $this->_syncTimeStamp); - + $response->appendChild($this->_outputDom->createElementNS('uri:ItemEstimate', 'Status', self::STATUS_SUCCESS)); $collection = $response->appendChild($this->_outputDom->createElementNS('uri:ItemEstimate', 'Collection')); $collection->appendChild($this->_outputDom->createElementNS('uri:ItemEstimate', 'CollectionId', $collectionData'collectionId')); @@ -135,13 +139,13 @@ } $collection->appendChild($this->_outputDom->createElementNS('uri:ItemEstimate', 'Estimate', $count)); } - + // folderState can be NULL in case of not existing folder if (isset($collectionData'folder') && $collectionData'folder'->isDirty()) { $this->_folderBackend->update($collectionData'folder'); } } - + return $this->_outputDom; } }
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Command/ICommand.php
Changed
@@ -15,19 +15,19 @@ * @package Syncroton * @subpackage Command */ -interface Syncroton_Command_ICommand +interface Syncroton_Command_ICommand { /** * constructor of this class - * + * * @param resource $_requestBody * @param Syncroton_Model_IDevice $_device - * @param string $_policyKey + * @param array $_requestParams */ - public function __construct($_requestBody, Syncroton_Model_IDevice $_device, $_policyKey); - + public function __construct($_requestBody, Syncroton_Model_IDevice $_device, $_requestParams = ); + /** - * process the incoming data + * process the incoming data */ public function handle(); @@ -35,10 +35,10 @@ * create the response */ public function getResponse(); - + /** * return headers of command - * + * * @return array list of headers */ public function getHeaders();
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Command/ItemOperations.php
Changed
@@ -15,31 +15,31 @@ * @package Syncroton * @subpackage Command */ -class Syncroton_Command_ItemOperations extends Syncroton_Command_Wbxml -{ - const STATUS_SUCCESS = 1; - const STATUS_PROTOCOL_ERROR = 2; - const STATUS_SERVER_ERROR = 3; - - const STATUS_ITEM_FAILED_CONVERSION = 14; - +class Syncroton_Command_ItemOperations extends Syncroton_Command_Wbxml +{ + public const STATUS_SUCCESS = 1; + public const STATUS_PROTOCOL_ERROR = 2; + public const STATUS_SERVER_ERROR = 3; + + public const STATUS_ITEM_FAILED_CONVERSION = 14; + protected $_defaultNameSpace = 'uri:ItemOperations'; protected $_documentElement = 'ItemOperations'; - + /** * list of items to move - * + * * @var array */ - protected $_fetches = array(); - + protected $_fetches = ; + /** * list of folder to empty - * + * * @var array */ - protected $_emptyFolderContents = array(); - + protected $_emptyFolderContents = ; + /** * parse MoveItems request * @@ -47,112 +47,112 @@ public function handle() { $xml = simplexml_import_dom($this->_requestBody); - + if (isset($xml->Fetch)) { foreach ($xml->Fetch as $fetch) { $this->_fetches = $this->_handleFetch($fetch); } } - + if (isset($xml->EmptyFolderContents)) { foreach ($xml->EmptyFolderContents as $emptyFolderContents) { $this->_emptyFolderContents = $this->_handleEmptyFolderContents($emptyFolderContents); } } } - + /** * generate ItemOperations response - * + * * @todo add multipart support to all types of fetches */ public function getResponse() { // add aditional namespaces - $this->_outputDom->documentElement->setAttributeNS('http://www.w3.org/2000/xmlns/', 'xmlns:AirSyncBase' , 'uri:AirSyncBase'); - $this->_outputDom->documentElement->setAttributeNS('http://www.w3.org/2000/xmlns/', 'xmlns:AirSync' , 'uri:AirSync'); - $this->_outputDom->documentElement->setAttributeNS('http://www.w3.org/2000/xmlns/', 'xmlns:Search' , 'uri:Search'); - + $this->_outputDom->documentElement->setAttributeNS('http://www.w3.org/2000/xmlns/', 'xmlns:AirSyncBase', 'uri:AirSyncBase'); + $this->_outputDom->documentElement->setAttributeNS('http://www.w3.org/2000/xmlns/', 'xmlns:AirSync', 'uri:AirSync'); + $this->_outputDom->documentElement->setAttributeNS('http://www.w3.org/2000/xmlns/', 'xmlns:Search', 'uri:Search'); + $itemOperations = $this->_outputDom->documentElement; - + $itemOperations->appendChild($this->_outputDom->createElementNS('uri:ItemOperations', 'Status', Syncroton_Command_ItemOperations::STATUS_SUCCESS)); - + $response = $itemOperations->appendChild($this->_outputDom->createElementNS('uri:ItemOperations', 'Response')); - + foreach ($this->_fetches as $fetch) { $fetchTag = $response->appendChild($this->_outputDom->createElementNS('uri:ItemOperations', 'Fetch')); - + try { $dataController = Syncroton_Data_Factory::factory($fetch'store', $this->_device, $this->_syncTimeStamp); - + if (isset($fetch'collectionId')) { $fetchTag->appendChild($this->_outputDom->createElementNS('uri:ItemOperations', 'Status', Syncroton_Command_ItemOperations::STATUS_SUCCESS)); $fetchTag->appendChild($this->_outputDom->createElementNS('uri:AirSync', 'CollectionId', $fetch'collectionId')); - $fetchTag->appendChild($this->_outputDom->createElementNS('uri:AirSync', 'ServerId', $fetch'serverId')); - + $fetchTag->appendChild($this->_outputDom->createElementNS('uri:AirSync', 'ServerId', $fetch'serverId')); + $properties = $this->_outputDom->createElementNS('uri:ItemOperations', 'Properties'); $dataController - ->getEntry(new Syncroton_Model_SyncCollection(array('collectionId' => $fetch'collectionId', 'options' => $fetch'options')), $fetch'serverId') + ->getEntry(new Syncroton_Model_SyncCollection('collectionId' => $fetch'collectionId', 'options' => $fetch'options'), $fetch'serverId') ->appendXML($properties, $this->_device); $fetchTag->appendChild($properties); - + } elseif (isset($fetch'longId')) { $fetchTag->appendChild($this->_outputDom->createElementNS('uri:ItemOperations', 'Status', Syncroton_Command_ItemOperations::STATUS_SUCCESS)); $fetchTag->appendChild($this->_outputDom->createElementNS('uri:Search', 'LongId', $fetch'longId')); - + $properties = $this->_outputDom->createElementNS('uri:ItemOperations', 'Properties'); $dataController - ->getEntry(new Syncroton_Model_SyncCollection(array('collectionId' => $fetch'longId', 'options' => $fetch'options')), $fetch'longId') + ->getEntry(new Syncroton_Model_SyncCollection('collectionId' => $fetch'longId', 'options' => $fetch'options'), $fetch'longId') ->appendXML($properties, $this->_device); $fetchTag->appendChild($properties); - + } elseif (isset($fetch'fileReference')) { $fetchTag->appendChild($this->_outputDom->createElementNS('uri:ItemOperations', 'Status', Syncroton_Command_ItemOperations::STATUS_SUCCESS)); $fetchTag->appendChild($this->_outputDom->createElementNS('uri:AirSyncBase', 'FileReference', $fetch'fileReference')); $properties = $this->_outputDom->createElementNS('uri:ItemOperations', 'Properties'); - + $fileReference = $dataController->getFileReference($fetch'fileReference'); - + // unset data field and move content to stream if (!empty($this->_requestParameters'acceptMultipart')) { $this->_headers'Content-Type' = 'application/vnd.ms-sync.multipart'; - + $partStream = fopen("php://temp", 'r+'); - + if (is_resource($fileReference->data)) { stream_copy_to_stream($fileReference->data, $partStream); } else { fwrite($partStream, $fileReference->data); } - + unset($fileReference->data); - + $this->_parts = $partStream; - + $fileReference->part = count($this->_parts); - } - + } + /** * the client requested a range. But we return the whole file. - * + * * That's not correct, but allowed. The server is allowed to overwrite the range. - * + * * @todo implement cutting $fileReference->data into pieces */ if (isset($fetch'options''range')) { $dataSize = $this->_getDataSize($fileReference->data); - + $total = $this->_outputDom->createElementNS('uri:ItemOperations', 'Total', $dataSize); $properties->appendChild($total); - - $rangeEnd = $dataSize > 0 ? $dataSize - 1 : 0; + + $rangeEnd = $dataSize > 0 ? $dataSize - 1 : 0; $range = $this->_outputDom->createElementNS('uri:ItemOperations', 'Range', '0-' . $rangeEnd); $properties->appendChild($range); } - + $fileReference->appendXML($properties, $this->_device); - + $fetchTag->appendChild($properties); } } catch (Syncroton_Exception_NotFound $e) { @@ -162,9 +162,9 @@ $response->appendChild($this->_outputDom->createElementNS('uri:ItemOperations', 'Status', Syncroton_Command_ItemOperations::STATUS_SERVER_ERROR)); } }
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Command/MeetingResponse.php
Changed
@@ -17,9 +17,10 @@ */ class Syncroton_Command_MeetingResponse extends Syncroton_Command_Wbxml { - protected $_results = array(); - + protected $_results = ; + protected $_defaultNameSpace = 'uri:MeetingResponse'; + protected $_documentElement = 'MeetingResponse'; /** @@ -27,27 +28,28 @@ */ public function handle() { + /** @var Syncroton_Data_IDataCalendar $dataController */ $dataController = Syncroton_Data_Factory::factory(Syncroton_Data_Factory::CLASS_CALENDAR, $this->_device, $this->_syncTimeStamp); - + $xml = simplexml_import_dom($this->_requestBody); foreach ($xml as $meetingResponse) { $request = new Syncroton_Model_MeetingResponse($meetingResponse); - + try { $calendarId = $dataController->setAttendeeStatus($request); - - $this->_results = array( + + $this->_results = 'calendarId' => $calendarId, 'request' => $request, - 'status' => 1 - ); - + 'status' => 1, + ; + } catch (Syncroton_Exception_Status_MeetingResponse $sesmr) { - $this->_results = array( + $this->_results = 'request' => $request, - 'status' => $sesmr->getCode() - ); + 'status' => $sesmr->getCode(), + ; } } } @@ -58,27 +60,27 @@ public function getResponse() { $this->_outputDom->documentElement->setAttributeNS('http://www.w3.org/2000/xmlns/', 'xmlns:Search', 'uri:Search'); - + $meetingResponse = $this->_outputDom->documentElement; foreach ($this->_results as $result) { $resultElement = $this->_outputDom->createElementNS('uri:MeetingResponse', 'Result'); - + if (isset($result'request'->requestId)) { $resultElement->appendChild($this->_outputDom->createElementNS('uri:MeetingResponse', 'RequestId', $result'request'->requestId)); } elseif (isset($result'request'->longId)) { $resultElement->appendChild($this->_outputDom->createElementNS('uri:Search', 'LongId', $result'request'->longId)); } - + $resultElement->appendChild($this->_outputDom->createElementNS('uri:MeetingResponse', 'Status', $result'status')); - + if (isset($result'calendarId')) { $resultElement->appendChild($this->_outputDom->createElementNS('uri:MeetingResponse', 'CalendarId', $result'calendarId')); } - + $meetingResponse->appendChild($resultElement); - } - + } + return $this->_outputDom; } }
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Command/MoveItems.php
Changed
@@ -20,7 +20,7 @@ */ class Syncroton_Command_MoveItems extends Syncroton_Command_Wbxml { - const STATUS_SUCCESS = 3; + public const STATUS_SUCCESS = 3; protected $_defaultNameSpace = 'uri:Move'; protected $_documentElement = 'MoveItems'; @@ -30,7 +30,7 @@ * * @var array */ - protected $_moves = array(); + protected $_moves = ; /** * parse MoveItems request @@ -40,11 +40,11 @@ $xml = simplexml_import_dom($this->_requestBody); foreach ($xml->Move as $move) { - $this->_moves = array( + $this->_moves = 'srcMsgId' => (string)$move->SrcMsgId, 'srcFldId' => (string)$move->SrcFldId, - 'dstFldId' => (string)$move->DstFldId - ); + 'dstFldId' => (string)$move->DstFldId, + ; } }
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Command/Options.php
Changed
@@ -20,15 +20,15 @@ /** * this function generates the response for the client * - * @return void + * @return array */ public function getHeaders() { // same header like Exchange 2xxx??? - return array( + return 'MS-Server-ActiveSync' => '14.00.0536.000', 'MS-ASProtocolVersions' => '2.5,12.0,12.1,14.0,14.1', - 'MS-ASProtocolCommands' => 'FolderCreate,FolderDelete,FolderSync,FolderUpdate,GetAttachment,GetItemEstimate,ItemOperations,MeetingResponse,MoveItems,Provision,ResolveRecipients,Ping,SendMail,Search,Settings,SmartForward,SmartReply,Sync,ValidateCert' - ); + 'MS-ASProtocolCommands' => 'FolderCreate,FolderDelete,FolderSync,FolderUpdate,GetAttachment,GetItemEstimate,ItemOperations,MeetingResponse,MoveItems,Provision,ResolveRecipients,Ping,SendMail,Search,Settings,SmartForward,SmartReply,Sync,ValidateCert', + ; } }
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Command/Ping.php
Changed
@@ -15,45 +15,38 @@ * @package Syncroton * @subpackage Command */ -class Syncroton_Command_Ping extends Syncroton_Command_Wbxml +class Syncroton_Command_Ping extends Syncroton_Command_Wbxml { - const STATUS_NO_CHANGES_FOUND = 1; - const STATUS_CHANGES_FOUND = 2; - const STATUS_MISSING_PARAMETERS = 3; - const STATUS_REQUEST_FORMAT_ERROR = 4; - const STATUS_INTERVAL_TO_GREAT_OR_SMALL = 5; - const STATUS_TOO_MANY_FOLDERS = 6; - const STATUS_FOLDER_NOT_FOUND = 7; - const STATUS_GENERAL_ERROR = 8; - - const MAX_PING_INTERVAL = 3540; // 59 minutes limit defined in Activesync protocol spec. - + public const STATUS_NO_CHANGES_FOUND = 1; + public const STATUS_CHANGES_FOUND = 2; + public const STATUS_MISSING_PARAMETERS = 3; + public const STATUS_REQUEST_FORMAT_ERROR = 4; + public const STATUS_INTERVAL_TO_GREAT_OR_SMALL = 5; + public const STATUS_TOO_MANY_FOLDERS = 6; + public const STATUS_FOLDER_NOT_FOUND = 7; + public const STATUS_GENERAL_ERROR = 8; + + public const MAX_PING_INTERVAL = 3540; // 59 minutes limit defined in Activesync protocol spec. + + protected $_defaultNameSpace = 'uri:Ping'; + + protected $_documentElement = 'Ping'; + protected $_skipValidatePolicyKey = true; - protected $_changesDetected = false; - - /** - * @var Syncroton_Backend_StandAlone_Abstract - */ - protected $_dataBackend; + protected $_foldersWithChanges = ; - protected $_defaultNameSpace = 'uri:Ping'; - protected $_documentElement = 'Ping'; - - protected $_foldersWithChanges = array(); - /** - * process the XML file and add, change, delete or fetches data + * process the XML file and add, change, delete or fetches data * * @todo can we get rid of LIBXML_NOWARNING * @todo we need to stored the initial data for folders and lifetime as the phone is sending them only when they change - * @return resource */ public function handle() { $intervalStart = time(); $status = self::STATUS_NO_CHANGES_FOUND; - + // the client does not send a wbxml document, if the Ping parameters did not change compared with the last request if ($this->_requestBody instanceof DOMDocument) { $xml = simplexml_import_dom($this->_requestBody); @@ -62,7 +55,7 @@ if(isset($xml->HeartbeatInterval)) { $this->_device->pinglifetime = (int)$xml->HeartbeatInterval; } - + if (isset($xml->Folders->Folder)) { $maxCollections = Syncroton_Registry::getMaxCollections(); if ($maxCollections && count($xml->Folders->Folder) > $maxCollections) { @@ -72,16 +65,17 @@ return; } - $folders = array(); + $folders = ; foreach ($xml->Folders->Folder as $folderXml) { try { // does the folder exist? $folder = $this->_folderBackend->getFolder($this->_device, (string)$folderXml->Id); - + $folders$folder->id = $folder; } catch (Syncroton_Exception_NotFound $senf) { - if ($this->_logger instanceof Zend_Log) + if ($this->_logger instanceof Zend_Log) { $this->_logger->debug(__METHOD__ . '::' . __LINE__ . " " . $senf->getMessage()); + } $status = self::STATUS_FOLDER_NOT_FOUND; break; } @@ -89,13 +83,13 @@ $this->_device->pingfolder = serialize(array_keys($folders)); } } - + $this->_device->lastping = new DateTime('now', new DateTimeZone('UTC')); if ($status == self::STATUS_NO_CHANGES_FOUND) { - $this->_device = $this->_deviceBackend->update($this->_device); + $this->_device = $this->_deviceBackend->update($this->_device); // @phpstan-ignore-line } - + $lifeTime = $this->_device->pinglifetime; $maxInterval = Syncroton_Registry::getPingInterval(); @@ -109,19 +103,20 @@ $ping->appendChild($this->_outputDom->createElementNS('uri:Ping', 'HeartbeatInterval', $maxInterval)); return; } - + $intervalEnd = $intervalStart + $lifeTime; $secondsLeft = $intervalEnd; - - $folders = $this->_device->pingfolder ? unserialize($this->_device->pingfolder) : array(); - + + $folders = $this->_device->pingfolder ? unserialize($this->_device->pingfolder) : ; + if ($status === self::STATUS_NO_CHANGES_FOUND && (!is_array($folders) || count($folders) == 0)) { $status = self::STATUS_MISSING_PARAMETERS; } - - if ($this->_logger instanceof Zend_Log) + + if ($this->_logger instanceof Zend_Log) { $this->_logger->debug(__METHOD__ . '::' . __LINE__ . " Folders to monitor($lifeTime / $intervalStart / $intervalEnd / $status): " . print_r($folders, true)); - + } + if ($status === self::STATUS_NO_CHANGES_FOUND) { $sleepCallback = Syncroton_Registry::getSleepCallback(); $wakeupCallback = Syncroton_Registry::getWakeupCallback(); @@ -133,8 +128,9 @@ // make sure the connection is still alive, abort otherwise if (connection_aborted()) { - if ($this->_logger instanceof Zend_Log) + if ($this->_logger instanceof Zend_Log) { $this->_logger->debug(__METHOD__ . '::' . __LINE__ . " Exiting on aborted connection"); + } exit; } @@ -146,132 +142,147 @@ $secondsLeft = $intervalEnd - time(); try { + /** @var Syncroton_Model_Device $device */ $device = $this->_deviceBackend->get($this->_device->id); } catch (Syncroton_Exception_NotFound $e) { - if ($this->_logger instanceof Zend_Log) + if ($this->_logger instanceof Zend_Log) { $this->_logger->debug(__METHOD__ . '::' . __LINE__ . " " . $e->getMessage()); + } $status = self::STATUS_FOLDER_NOT_FOUND; break; } catch (Exception $e) { - if ($this->_logger instanceof Zend_Log) + if ($this->_logger instanceof Zend_Log) { $this->_logger->err(__METHOD__ . '::' . __LINE__ . " " . $e->getMessage()); + } // do nothing, maybe temporal issue, should we stop? continue; } // if another Ping command updated lastping property, we can stop processing this Ping command request - if ((isset($device->lastping) && $device->lastping instanceof DateTime) && + if ((isset($device->lastping) && + $device->lastping instanceof DateTime) && $device->pingfolder === $this->_device->pingfolder && - $device->lastping->getTimestamp() > $this->_device->lastping->getTimestamp() ) { + $device->lastping->getTimestamp() > $this->_device->lastping->getTimestamp() + ) { break; } // If folders hierarchy changed, break the loop and ask the client for FolderSync try { if ($this->_folderBackend->hasHierarchyChanges($this->_device)) { - if ($this->_logger instanceof Zend_Log) + if ($this->_logger instanceof Zend_Log) { $this->_logger->debug(__METHOD__ . '::' . __LINE__ . ' Detected changes in folders hierarchy'); + } $status = self::STATUS_FOLDER_NOT_FOUND; break; } } catch (Exception $e) { - if ($this->_logger instanceof Zend_Log) + if ($this->_logger instanceof Zend_Log) {
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Command/Provision.php
Changed
@@ -19,67 +19,65 @@ { protected $_defaultNameSpace = 'uri:Provision'; protected $_documentElement = 'Provision'; - - const POLICYTYPE_WBXML = 'MS-EAS-Provisioning-WBXML'; - - const STATUS_SUCCESS = 1; - const STATUS_PROTOCOL_ERROR = 2; - const STATUS_GENERAL_SERVER_ERROR = 3; - const STATUS_DEVICE_MANAGED_EXTERNALLY = 4; - - const STATUS_POLICY_SUCCESS = 1; - const STATUS_POLICY_NOPOLICY = 2; - const STATUS_POLICY_UNKNOWNTYPE = 3; - const STATUS_POLICY_CORRUPTED = 4; - const STATUS_POLICY_WRONGPOLICYKEY = 5; - - const REMOTEWIPE_REQUESTED = 1; - const REMOTEWIPE_CONFIRMED = 2; - + + public const POLICYTYPE_WBXML = 'MS-EAS-Provisioning-WBXML'; + + public const STATUS_SUCCESS = 1; + public const STATUS_PROTOCOL_ERROR = 2; + public const STATUS_GENERAL_SERVER_ERROR = 3; + public const STATUS_DEVICE_MANAGED_EXTERNALLY = 4; + + public const STATUS_POLICY_SUCCESS = 1; + public const STATUS_POLICY_NOPOLICY = 2; + public const STATUS_POLICY_UNKNOWNTYPE = 3; + public const STATUS_POLICY_CORRUPTED = 4; + public const STATUS_POLICY_WRONGPOLICYKEY = 5; + + public const REMOTEWIPE_REQUESTED = 1; + public const REMOTEWIPE_CONFIRMED = 2; + protected $_skipValidatePolicyKey = true; - + protected $_policyType; protected $_sendPolicyKey; - + /** * @var Syncroton_Model_DeviceInformation */ protected $_deviceInformation; - + /** - * process the XML file and add, change, delete or fetches data - * - * @return resource + * process the XML file and add, change, delete or fetches data */ public function handle() { $xml = simplexml_import_dom($this->_requestBody); - + $this->_policyType = isset($xml->Policies->Policy->PolicyType) ? (string) $xml->Policies->Policy->PolicyType : null; - $this->_sendPolicyKey = isset($xml->Policies->Policy->PolicyKey) ? (int) $xml->Policies->Policy->PolicyKey : null; - + $this->_sendPolicyKey = isset($xml->Policies->Policy->PolicyKey) ? (int) $xml->Policies->Policy->PolicyKey : null; + if ($this->_device->remotewipe == self::REMOTEWIPE_REQUESTED && isset($xml->RemoteWipe->Status) && (int)$xml->RemoteWipe->Status == self::STATUS_SUCCESS) { $this->_device->remotewipe = self::REMOTEWIPE_CONFIRMED; } - - // try to fetch element from Settings namespace + + // try to fetch element from Settings namespace $settings = $xml->children('uri:Settings'); if (isset($settings->DeviceInformation) && isset($settings->DeviceInformation->Set)) { $this->_deviceInformation = new Syncroton_Model_DeviceInformation($settings->DeviceInformation->Set); - - $this->_device->model = $this->_deviceInformation->model; - $this->_device->imei = $this->_deviceInformation->iMEI; - $this->_device->friendlyname = $this->_deviceInformation->friendlyName; - $this->_device->os = $this->_deviceInformation->oS; - $this->_device->oslanguage = $this->_deviceInformation->oSLanguage; - $this->_device->phonenumber = $this->_deviceInformation->phoneNumber; + + $this->_device->model = $this->_deviceInformation->model; + $this->_device->imei = $this->_deviceInformation->iMEI; + $this->_device->friendlyname = $this->_deviceInformation->friendlyName; + $this->_device->os = $this->_deviceInformation->oS; + $this->_device->oslanguage = $this->_deviceInformation->oSLanguage; + $this->_device->phonenumber = $this->_deviceInformation->phoneNumber; } if ($this->_device->isDirty()) { - $this->_device = $this->_deviceBackend->update($this->_device); + $this->_device = $this->_deviceBackend->update($this->_device); // @phpstan-ignore-line } } - + /** * generate search command response * @@ -87,27 +85,28 @@ public function getResponse() { $this->_outputDom->documentElement->setAttributeNS('http://www.w3.org/2000/xmlns/', 'xmlns:Settings', 'uri:Settings'); - + // should we wipe the device if ($this->_device->remotewipe >= self::REMOTEWIPE_REQUESTED) { $this->_sendRemoteWipe(); } else { - if ($this->_logger instanceof Zend_Log) + if ($this->_logger instanceof Zend_Log) { $this->_logger->debug(__METHOD__ . '::' . __LINE__ . ' PolicyType: ' . $this->_policyType . ' PolicyKey: ' . $this->_sendPolicyKey); - + } + if (!$this->_sendPolicyKey) { $this->_sendPolicy(); } elseif ($this->_sendPolicyKey == $this->_device->policykey) { $this->_acknowledgePolicy(); - } - } - + } + } + return $this->_outputDom; } - + /** * function the send policy to client - * + * * 4131 (Enforce password on device) 0: enabled 1: disabled * 4133 (Unlock from computer) 0: disabled 1: enabled * AEFrequencyType 0: no inactivity time 1: inactivity time is set @@ -120,9 +119,10 @@ */ protected function _sendPolicy() { - if ($this->_logger instanceof Zend_Log) + if ($this->_logger instanceof Zend_Log) { $this->_logger->info(__METHOD__ . '::' . __LINE__ . ' send policy to device'); - + } + $provision = $sync = $this->_outputDom->documentElement; $provision->appendChild($this->_outputDom->createElementNS('uri:Provision', 'Status', 1)); @@ -131,61 +131,65 @@ $deviceInformation = $provision->appendChild($this->_outputDom->createElementNS('uri:Settings', 'DeviceInformation')); $deviceInformation->appendChild($this->_outputDom->createElementNS('uri:Settings', 'Status', 1)); } - + // policies $policies = $provision->appendChild($this->_outputDom->createElementNS('uri:Provision', 'Policies')); $policy = $policies->appendChild($this->_outputDom->createElementNS('uri:Provision', 'Policy')); $policy->appendChild($this->_outputDom->createElementNS('uri:Provision', 'PolicyType', $this->_policyType)); - + if ($this->_policyType != self::POLICYTYPE_WBXML) { $policy->appendChild($this->_outputDom->createElementNS('uri:Provision', 'Status', self::STATUS_POLICY_UNKNOWNTYPE)); } elseif (empty($this->_device->policyId)) { $policy->appendChild($this->_outputDom->createElementNS('uri:Provision', 'Status', self::STATUS_POLICY_NOPOLICY)); } else { $this->_device->policykey = $this->generatePolicyKey(); - + $policy->appendChild($this->_outputDom->createElementNS('uri:Provision', 'Status', self::STATUS_POLICY_SUCCESS)); $policy->appendChild($this->_outputDom->createElementNS('uri:Provision', 'PolicyKey', $this->_device->policykey)); - + $data = $policy->appendChild($this->_outputDom->createElementNS('uri:Provision', 'Data')); $easProvisionDoc = $data->appendChild($this->_outputDom->createElementNS('uri:Provision', 'EASProvisionDoc')); - $this->_policyBackend - ->get($this->_device->policyId) - ->appendXML($easProvisionDoc, $this->_device); - + + /** @var Syncroton_Model_Policy $_policy */ + $_policy = $this->_policyBackend->get($this->_device->policyId); + $_policy->appendXML($easProvisionDoc, $this->_device); + $this->_deviceBackend->update($this->_device); } } - + /** * function the send remote wipe command */ protected function _sendRemoteWipe() { - if ($this->_logger instanceof Zend_Log) + if ($this->_logger instanceof Zend_Log) {
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Command/Search.php
Changed
@@ -17,8 +17,8 @@ */ class Syncroton_Command_Search extends Syncroton_Command_Wbxml { - const STATUS_SUCCESS = 1; - const STATUS_SERVER_ERROR = 3; + public const STATUS_SUCCESS = 1; + public const STATUS_SERVER_ERROR = 3; protected $_defaultNameSpace = 'uri:Search'; protected $_documentElement = 'Search'; @@ -39,7 +39,8 @@ { if (! $this->_requestBody instanceof DOMDocument) { throw new Syncroton_Exception_UnexpectedValue( - 'request body is no DOMDocument. got: ' . print_r($this->_requestBody, true)); + 'request body is no DOMDocument. got: ' . print_r($this->_requestBody, true) + ); } $xml = simplexml_import_dom($this->_requestBody); @@ -54,24 +55,26 @@ public function getResponse() { $dataController = Syncroton_Data_Factory::factory($this->_store->name, $this->_device, new DateTime()); - - if (! $dataController instanceof Syncroton_Data_IDataSearch) { - throw new RuntimeException('class must be instanceof Syncroton_Data_IDataSearch'); + + if (! $dataController instanceof Syncroton_Data_IDataSearch) { + throw new RuntimeException('class must be instanceof Syncroton_Data_IDataSearch'); } - + try { // Search $storeResponse = $dataController->search($this->_store); $storeResponse->status = self::STATUS_SUCCESS; } catch (Exception $e) { - if ($this->_logger instanceof Zend_Log) + if ($this->_logger instanceof Zend_Log) { $this->_logger->debug(__METHOD__ . '::' . __LINE__ . " search exception: " . $e->getMessage()); - if ($this->_logger instanceof Zend_Log) + } + if ($this->_logger instanceof Zend_Log) { $this->_logger->debug(__METHOD__ . '::' . __LINE__ . " saerch exception trace : " . $e->getTraceAsString()); - - $storeResponse = new Syncroton_Model_StoreResponse(array( - 'status' => self::STATUS_SERVER_ERROR - )); + } + + $storeResponse = new Syncroton_Model_StoreResponse( + 'status' => self::STATUS_SERVER_ERROR, + ); } $search = $this->_outputDom->documentElement;
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Command/SendMail.php
Changed
@@ -38,35 +38,36 @@ $this->_saveInSent = $this->_requestParameters'saveInSent'; $this->_replaceMime = false; - $this->_source = array( + $this->_source = 'collectionId' => $this->_requestParameters'collectionId', 'itemId' => $this->_requestParameters'itemId', - 'instanceId' => null - ); + 'instanceId' => null, + ; - } else if ($this->_requestBody) { + } elseif ($this->_requestBody) { $xml = simplexml_import_dom($this->_requestBody); $this->_mime = (string) $xml->Mime; $this->_saveInSent = isset($xml->SaveInSentItems); $this->_replaceMime = isset($xml->ReplaceMime); - if (isset ($xml->Source)) { + if (isset($xml->Source)) { if ($xml->Source->LongId) { $this->_source = (string)$xml->Source->LongId; } else { - $this->_source = array( + $this->_source = 'collectionId' => (string)$xml->Source->FolderId, 'itemId' => (string)$xml->Source->ItemId, - 'instanceId' => isset($xml->Source->InstanceId) ? (string)$xml->Source->InstanceId : null - ); + 'instanceId' => isset($xml->Source->InstanceId) ? (string)$xml->Source->InstanceId : null, + ; } } } if (empty($this->_mime)) { - if ($this->_logger instanceof Zend_Log) + if ($this->_logger instanceof Zend_Log) { $this->_logger->warn(__METHOD__ . '::' . __LINE__ . " Sending email failed: Empty input"); + } if (version_compare($this->_device->acsversion, '14.0', '<')) { @@ -75,9 +76,9 @@ } $response_type = 'Syncroton_Model_' . $this->_documentElement; - $response = new $response_type(array( + $response = new $response_type( 'status' => Syncroton_Exception_Status::INVALID_CONTENT, - )); + ); $response->appendXML($this->_outputDom->documentElement, $this->_device); @@ -85,8 +86,9 @@ } - if ($this->_logger instanceof Zend_Log) + if ($this->_logger instanceof Zend_Log) { $this->_logger->debug(__METHOD__ . '::' . __LINE__ . " saveInSent: " . (int)$this->_saveInSent); + } } /** @@ -101,13 +103,14 @@ try { $this->sendMail($dataController); } catch (Syncroton_Exception_Status $ses) { - if ($this->_logger instanceof Zend_Log) + if ($this->_logger instanceof Zend_Log) { $this->_logger->warn(__METHOD__ . '::' . __LINE__ . " Sending email failed: " . $ses->getMessage()); + } $response_type = 'Syncroton_Model_' . $this->_documentElement; - $response = new $response_type(array( + $response = new $response_type( 'status' => $ses->getCode(), - )); + ); $response->appendXML($this->_outputDom->documentElement, $this->_device);
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Command/Settings.php
Changed
@@ -15,13 +15,13 @@ * @package Syncroton * @subpackage Command */ -class Syncroton_Command_Settings extends Syncroton_Command_Wbxml +class Syncroton_Command_Settings extends Syncroton_Command_Wbxml { - const STATUS_SUCCESS = 1; - + public const STATUS_SUCCESS = 1; + protected $_defaultNameSpace = 'uri:Settings'; protected $_documentElement = 'Settings'; - + /** * @var Syncroton_Model_DeviceInformation */ @@ -30,44 +30,45 @@ protected $_userInformationRequested = false; protected $_OofGet; protected $_OofSet; - - + + /** - * process the XML file and add, change, delete or fetches data + * process the XML file and add, change, delete or fetches data * */ public function handle() { $xml = simplexml_import_dom($this->_requestBody); - - if(isset($xml->DeviceInformation->Set)) { - $this->_deviceInformation = new Syncroton_Model_DeviceInformation($xml->DeviceInformation->Set); - - $this->_device->model = $this->_deviceInformation->model; - $this->_device->imei = $this->_deviceInformation->iMEI; - $this->_device->friendlyname = $this->_deviceInformation->friendlyName; - $this->_device->os = $this->_deviceInformation->oS; - $this->_device->oslanguage = $this->_deviceInformation->oSLanguage; - $this->_device->phonenumber = $this->_deviceInformation->phoneNumber; + + if (isset($xml->DeviceInformation->Set)) { + $this->_deviceInformation = new Syncroton_Model_DeviceInformation($xml->DeviceInformation->Set); + + $this->_device->model = $this->_deviceInformation->model; + $this->_device->imei = $this->_deviceInformation->iMEI; + $this->_device->friendlyname = $this->_deviceInformation->friendlyName; + $this->_device->os = $this->_deviceInformation->oS; + $this->_device->oslanguage = $this->_deviceInformation->oSLanguage; + $this->_device->phonenumber = $this->_deviceInformation->phoneNumber; if ($this->_device->isDirty()) { + // @phpstan-ignore-next-line $this->_device = $this->_deviceBackend->update($this->_device); } } - - if(isset($xml->UserInformation->Get)) { + + if (isset($xml->UserInformation->Get)) { $this->_userInformationRequested = true; } if (isset($xml->Oof)) { if (isset($xml->Oof->Get)) { - $this->_OofGet = array('bodyType' => $xml->Oof->Get->BodyType); - } else if (isset($xml->Oof->Set)) { + $this->_OofGet = 'bodyType' => $xml->Oof->Get->BodyType; + } elseif (isset($xml->Oof->Set)) { $this->_OofSet = new Syncroton_Model_Oof($xml->Oof->Set); } } } - + /** * this function generates the response for the client * @@ -75,29 +76,29 @@ public function getResponse() { $settings = $this->_outputDom->documentElement; - + $settings->appendChild($this->_outputDom->createElementNS('uri:Settings', 'Status', self::STATUS_SUCCESS)); - + if ($this->_deviceInformation instanceof Syncroton_Model_DeviceInformation) { $deviceInformation = $settings->appendChild($this->_outputDom->createElementNS('uri:Settings', 'DeviceInformation')); $set = $deviceInformation->appendChild($this->_outputDom->createElementNS('uri:Settings', 'Set')); $set->appendChild($this->_outputDom->createElementNS('uri:Settings', 'Status', self::STATUS_SUCCESS)); } - + if ($this->_userInformationRequested === true) { $userInformation = $settings->appendChild($this->_outputDom->createElementNS('uri:Settings', 'UserInformation')); $userInformation->appendChild($this->_outputDom->createElementNS('uri:Settings', 'Status', self::STATUS_SUCCESS)); $get = $userInformation->appendChild($this->_outputDom->createElementNS('uri:Settings', 'Get')); -/* - $smtpAddresses = array(); - if (!empty($smtpAddresses)) { - $emailAddresses = $get->appendChild($this->_outputDom->createElementNS('uri:Settings', 'EmailAddresses')); - foreach($smtpAddresses as $smtpAddress) { - $emailAddresses->appendChild($this->_outputDom->createElementNS('uri:Settings', 'SMTPAddress', $smtpAddress)); - } - } -*/ + /* + $smtpAddresses = array(); + if (!empty($smtpAddresses)) { + $emailAddresses = $get->appendChild($this->_outputDom->createElementNS('uri:Settings', 'EmailAddresses')); + foreach($smtpAddresses as $smtpAddress) { + $emailAddresses->appendChild($this->_outputDom->createElementNS('uri:Settings', 'SMTPAddress', $smtpAddress)); + } + } + */ $userAccounts = $this->_deviceBackend->userAccounts($this->_device); if (!empty($userAccounts)) { $accounts = $get->appendChild($this->_outputDom->createElementNS('uri:Settings', 'Accounts')); @@ -133,7 +134,7 @@ $Get = $Oof->appendChild($this->_outputDom->createElementNS('uri:Settings', 'Get')); $OofGet->appendXML($Get, $this->_device); } - } else if (!empty($this->_OofSet)) { + } elseif (!empty($this->_OofSet)) { try { $this->_deviceBackend->setOOF($this->_OofSet); $OofStatus = self::STATUS_SUCCESS;
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Command/Sync.php
Changed
@@ -15,82 +15,82 @@ * @package Syncroton * @subpackage Command */ -class Syncroton_Command_Sync extends Syncroton_Command_Wbxml +class Syncroton_Command_Sync extends Syncroton_Command_Wbxml { - const STATUS_SUCCESS = 1; - const STATUS_PROTOCOL_VERSION_MISMATCH = 2; - const STATUS_INVALID_SYNC_KEY = 3; - const STATUS_PROTOCOL_ERROR = 4; - const STATUS_SERVER_ERROR = 5; - const STATUS_ERROR_IN_CLIENT_SERVER_CONVERSION = 6; - const STATUS_CONFLICT_MATCHING_THE_CLIENT_AND_SERVER_OBJECT = 7; - const STATUS_OBJECT_NOT_FOUND = 8; - const STATUS_USER_ACCOUNT_MAYBE_OUT_OF_DISK_SPACE = 9; - const STATUS_ERROR_SETTING_NOTIFICATION_GUID = 10; - const STATUS_DEVICE_NOT_PROVISIONED_FOR_NOTIFICATIONS = 11; - const STATUS_FOLDER_HIERARCHY_HAS_CHANGED = 12; - const STATUS_RESEND_FULL_XML = 13; - const STATUS_WAIT_INTERVAL_OUT_OF_RANGE = 14; - const STATUS_TOO_MANY_COLLECTIONS = 15; - - const CONFLICT_OVERWRITE_SERVER = 0; - const CONFLICT_OVERWRITE_PIM = 1; - - const MIMESUPPORT_DONT_SEND_MIME = 0; - const MIMESUPPORT_SMIME_ONLY = 1; - const MIMESUPPORT_SEND_MIME = 2; - - const BODY_TYPE_PLAIN_TEXT = 1; - const BODY_TYPE_HTML = 2; - const BODY_TYPE_RTF = 3; - const BODY_TYPE_MIME = 4; - + public const STATUS_SUCCESS = 1; + public const STATUS_PROTOCOL_VERSION_MISMATCH = 2; + public const STATUS_INVALID_SYNC_KEY = 3; + public const STATUS_PROTOCOL_ERROR = 4; + public const STATUS_SERVER_ERROR = 5; + public const STATUS_ERROR_IN_CLIENT_SERVER_CONVERSION = 6; + public const STATUS_CONFLICT_MATCHING_THE_CLIENT_AND_SERVER_OBJECT = 7; + public const STATUS_OBJECT_NOT_FOUND = 8; + public const STATUS_USER_ACCOUNT_MAYBE_OUT_OF_DISK_SPACE = 9; + public const STATUS_ERROR_SETTING_NOTIFICATION_GUID = 10; + public const STATUS_DEVICE_NOT_PROVISIONED_FOR_NOTIFICATIONS = 11; + public const STATUS_FOLDER_HIERARCHY_HAS_CHANGED = 12; + public const STATUS_RESEND_FULL_XML = 13; + public const STATUS_WAIT_INTERVAL_OUT_OF_RANGE = 14; + public const STATUS_TOO_MANY_COLLECTIONS = 15; + + public const CONFLICT_OVERWRITE_SERVER = 0; + public const CONFLICT_OVERWRITE_PIM = 1; + + public const MIMESUPPORT_DONT_SEND_MIME = 0; + public const MIMESUPPORT_SMIME_ONLY = 1; + public const MIMESUPPORT_SEND_MIME = 2; + + public const BODY_TYPE_PLAIN_TEXT = 1; + public const BODY_TYPE_HTML = 2; + public const BODY_TYPE_RTF = 3; + public const BODY_TYPE_MIME = 4; + /** * truncate types */ - const TRUNCATE_ALL = 0; - const TRUNCATE_4096 = 1; - const TRUNCATE_5120 = 2; - const TRUNCATE_7168 = 3; - const TRUNCATE_10240 = 4; - const TRUNCATE_20480 = 5; - const TRUNCATE_51200 = 6; - const TRUNCATE_102400 = 7; - const TRUNCATE_NOTHING = 8; - + public const TRUNCATE_ALL = 0; + public const TRUNCATE_4096 = 1; + public const TRUNCATE_5120 = 2; + public const TRUNCATE_7168 = 3; + public const TRUNCATE_10240 = 4; + public const TRUNCATE_20480 = 5; + public const TRUNCATE_51200 = 6; + public const TRUNCATE_102400 = 7; + public const TRUNCATE_NOTHING = 8; + /** * filter types */ - const FILTER_NOTHING = 0; - const FILTER_1_DAY_BACK = 1; - const FILTER_3_DAYS_BACK = 2; - const FILTER_1_WEEK_BACK = 3; - const FILTER_2_WEEKS_BACK = 4; - const FILTER_1_MONTH_BACK = 5; - const FILTER_3_MONTHS_BACK = 6; - const FILTER_6_MONTHS_BACK = 7; - const FILTER_INCOMPLETE = 8; - - + public const FILTER_NOTHING = 0; + public const FILTER_1_DAY_BACK = 1; + public const FILTER_3_DAYS_BACK = 2; + public const FILTER_1_WEEK_BACK = 3; + public const FILTER_2_WEEKS_BACK = 4; + public const FILTER_1_MONTH_BACK = 5; + public const FILTER_3_MONTHS_BACK = 6; + public const FILTER_6_MONTHS_BACK = 7; + public const FILTER_INCOMPLETE = 8; + + protected $_defaultNameSpace = 'uri:AirSync'; protected $_documentElement = 'Sync'; - + /** * list of collections * - * @var array + * @var array<string,Syncroton_Model_SyncCollection> */ - protected $_collections = array(); - - protected $_modifications = array(); - + protected $_collections = ; + + protected $_modifications = ; + /** * the global WindowSize * * @var integer */ protected $_globalWindowSize; - + /** * there are more entries than WindowSize available * the MoreAvailable tag hot added to the xml output @@ -98,64 +98,65 @@ * @var boolean */ protected $_moreAvailable = false; - + protected $_maxWindowSize = 100; - + protected $_heartbeatInterval = null; - + /** - * process the XML file and add, change, delete or fetches data + * process the XML file and add, change, delete or fetches data */ public function handle() { // input xml $requestXML = simplexml_import_dom($this->_mergeSyncRequest($this->_requestBody, $this->_device)); - + if (! isset($requestXML->Collections)) { $this->_outputDom->documentElement->appendChild( $this->_outputDom->createElementNS('uri:AirSync', 'Status', self::STATUS_RESEND_FULL_XML) ); - + return $this->_outputDom; } - + + $intervalDiv = 1; if (isset($requestXML->HeartbeatInterval)) { $intervalDiv = 1; $this->_heartbeatInterval = (int)$requestXML->HeartbeatInterval; - } else if (isset($requestXML->Wait)) { + } elseif (isset($requestXML->Wait)) { $intervalDiv = 60; $this->_heartbeatInterval = (int)$requestXML->Wait * $intervalDiv; } - + $maxInterval = Syncroton_Registry::getPingInterval(); if ($maxInterval <= 0 || $maxInterval > Syncroton_Server::MAX_HEARTBEAT_INTERVAL) { $maxInterval = Syncroton_Server::MAX_HEARTBEAT_INTERVAL; } - + if ($this->_heartbeatInterval && $this->_heartbeatInterval > $maxInterval) { $sync = $this->_outputDom->documentElement; $sync->appendChild($this->_outputDom->createElementNS('uri:AirSync', 'Status', self::STATUS_WAIT_INTERVAL_OUT_OF_RANGE)); - $sync->appendChild($this->_outputDom->createElementNS('uri:AirSync', 'Limit', floor($maxInterval/$intervalDiv))); + $sync->appendChild($this->_outputDom->createElementNS('uri:AirSync', 'Limit', floor($maxInterval / $intervalDiv))); $this->_heartbeatInterval = null; return; } - + $this->_globalWindowSize = isset($requestXML->WindowSize) ? (int)$requestXML->WindowSize : 100;
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Command/Wbxml.php
Changed
@@ -15,122 +15,121 @@ * @package Syncroton * @subpackage Command */ - + abstract class Syncroton_Command_Wbxml implements Syncroton_Command_ICommand { /** * informations about the currently device * - * @var Syncroton_Model_Device + * @var Syncroton_Model_IDevice */ protected $_device; - + /** * informations about the currently device * * @var Syncroton_Backend_IDevice */ protected $_deviceBackend; - + /** * informations about the currently device * * @var Syncroton_Backend_IFolder */ protected $_folderBackend; - + /** * @var Syncroton_Backend_ISyncState */ protected $_syncStateBackend; - + /** * @var Syncroton_Backend_IContent */ protected $_contentStateBackend; - + /** - * - * @var Syncroton_Backend_IPolicy + * @var Syncroton_Backend_Policy */ protected $_policyBackend; - + /** * the domDocument containing the xml response from the server * * @var DOMDocument */ protected $_outputDom; - + /** * the domDocucment containing the xml request from the client * * @var DOMDocument */ protected $_requestBody; - + /** * the default namespace * - * @var string + * @var ?string */ protected $_defaultNameSpace; - + /** * the main xml tag * - * @var string + * @var ?string */ protected $_documentElement; - + /** * @var array */ protected $_requestParameters; - + /** * @var Syncroton_Model_SyncState */ protected $_syncState; - + protected $_skipValidatePolicyKey = false; - + /** * timestamp to use for all sync requests * * @var DateTime */ protected $_syncTimeStamp; - + /** * @var string */ protected $_transactionId; - + /** * @var string */ protected $_policyKey; - + /** * @var Zend_Log */ protected $_logger; - + /** * list of part streams - * + * * @var array */ - protected $_parts = array(); - + protected $_parts = ; + /** * list of headers - * + * * @var array */ - protected $_headers = array(); - + protected $_headers = ; + /** * the constructor * @@ -138,12 +137,12 @@ * @param Syncroton_Model_Device $device * @param array $requestParameters */ - public function __construct($requestBody, Syncroton_Model_IDevice $device, $requestParameters) + public function __construct($requestBody, Syncroton_Model_IDevice $device, $requestParameters = ) { $this->_requestBody = $requestBody; $this->_device = $device; $this->_requestParameters = $requestParameters; - $this->_policyKey = isset($requestParameters'policyKey') ? $requestParameters'policyKey' : null; + $this->_policyKey = $requestParameters'policyKey' ?? null; $this->_deviceBackend = Syncroton_Registry::getDeviceBackend(); $this->_folderBackend = Syncroton_Registry::getFolderBackend(); @@ -153,55 +152,57 @@ if (Syncroton_Registry::isRegistered('loggerBackend')) { $this->_logger = Syncroton_Registry::get('loggerBackend'); } - + $this->_syncTimeStamp = new DateTime('now', new DateTimeZone('UTC')); - + // set default content type $this->_headers'Content-Type' = 'application/vnd.ms-sync.wbxml'; - - if ($this->_logger instanceof Zend_Log) + + if ($this->_logger instanceof Zend_Log) { $this->_logger->debug(__METHOD__ . '::' . __LINE__ . " sync timestamp: " . $this->_syncTimeStamp->format('Y-m-d H:i:s')); - + } + if (isset($this->_defaultNameSpace) && isset($this->_documentElement)) { // Creates an instance of the DOMImplementation class $imp = new DOMImplementation(); - + // Creates a DOMDocumentType instance $dtd = $imp->createDocumentType('AirSync', "-//AIRSYNC//DTD AirSync//EN", "http://www.microsoft.com/"); - + // Creates a DOMDocument instance $this->_outputDom = $imp->createDocument($this->_defaultNameSpace, $this->_documentElement, $dtd); $this->_outputDom->documentElement->setAttributeNS('http://www.w3.org/2000/xmlns/', 'xmlns:Syncroton', 'uri:Syncroton'); $this->_outputDom->formatOutput = false; $this->_outputDom->encoding = 'utf-8'; }
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Data/AData.php
Changed
@@ -17,16 +17,30 @@ */ abstract class Syncroton_Data_AData implements Syncroton_Data_IData { - const LONGID_DELIMITER = "\xe2\x87\x94"; # UTF-8 character ⇔ - - /** - * @var DateTime - */ + public const LONGID_DELIMITER = "\xe2\x87\x94"; // UTF-8 character ⇔ + + /** @var DateTime */ protected $_timeStamp; - + + /** @var Syncroton_Model_IDevice */ + protected $_device; + + /** @var Zend_Db_Adapter_Abstract */ + protected $_db; + + /** @var string */ + protected $_tablePrefix; + + /** @var string */ + protected $_ownerId; + + /** @var array */ + protected $_supportedFolderTypes = ; + + /** * the constructor - * + * * @param Syncroton_Model_IDevice $_device * @param DateTime $_timeStamp */ @@ -38,10 +52,10 @@ $this->_tablePrefix = 'Syncroton_'; $this->_ownerId = '1234'; } - + /** * return one folder identified by id - * + * * @param string $id * @throws Syncroton_Exception_NotFound * @return Syncroton_Model_Folder @@ -52,23 +66,23 @@ ->from($this->_tablePrefix . 'data_folder') ->where('owner_id = ?', $this->_ownerId) ->where('id = ?', $id); - + $stmt = $this->_db->query($select); $folder = $stmt->fetch(); $stmt = null; # see https://bugs.php.net/bug.php?id=44081 - + if ($folder === false) { throw new Syncroton_Exception_NotFound("folder $id not found"); } - - return new Syncroton_Model_Folder(array( + + return new Syncroton_Model_Folder( 'serverId' => $folder'id', 'displayName' => $folder'name', 'type' => $folder'type', - 'parentId' => !empty($folder'parent_id') ? $folder'parent_id' : null - )); + 'parentId' => !empty($folder'parent_id') ? $folder'parent_id' : null, + ); } - + /** * (non-PHPdoc) * @see Syncroton_Data_IData::createFolder() @@ -78,53 +92,53 @@ if (!in_array($folder->type, $this->_supportedFolderTypes)) { throw new Syncroton_Exception_UnexpectedValue(); } - - $id = !empty($folder->serverId) ? $folder->serverId : sha1(mt_rand(). microtime()); - - $this->_db->insert($this->_tablePrefix . 'data_folder', array( + + $id = !empty($folder->serverId) ? $folder->serverId : sha1(mt_rand() . microtime()); + + $this->_db->insert($this->_tablePrefix . 'data_folder', 'id' => $id, 'type' => $folder->type, 'name' => $folder->displayName, 'owner_id' => $this->_ownerId, 'parent_id' => $folder->parentId, - 'creation_time' => $this->_timeStamp->format("Y-m-d H:i:s") - )); - + 'creation_time' => $this->_timeStamp->format("Y-m-d H:i:s"), + ); + return $this->getFolder($id); } - + /** * (non-PHPdoc) * @see Syncroton_Data_IData::createEntry() */ - public function createEntry($_folderId, Syncroton_Model_IEntry $_entry) - { - $id = sha1(mt_rand(). microtime()); - - $this->_db->insert($this->_tablePrefix . 'data', array( - 'id' => $id, + public function createEntry($_folderId, Syncroton_Model_IEntry $_entry) + { + $id = sha1(mt_rand() . microtime()); + + $this->_db->insert($this->_tablePrefix . 'data', + 'id' => $id, 'class' => get_class($_entry), 'folder_id' => $_folderId, 'creation_time' => $this->_timeStamp->format("Y-m-d H:i:s"), - 'data' => serialize($_entry) - )); - - return $id; - } - + 'data' => serialize($_entry), + ); + + return $id; + } + /** * (non-PHPdoc) * @see Syncroton_Data_IData::deleteEntry() */ - public function deleteEntry($_folderId, $_serverId, $_collectionData) + public function deleteEntry($_folderId, $_serverId, $_collectionData = null) { $folderId = $_folderId instanceof Syncroton_Model_IFolder ? $_folderId->serverId : $_folderId; - - $result = $this->_db->delete($this->_tablePrefix . 'data', array('id = ?' => $_serverId)); - + + $result = $this->_db->delete($this->_tablePrefix . 'data', 'id = ?' => $_serverId); + return (bool) $result; } - + /** * (non-PHPdoc) * @see Syncroton_Data_IData::deleteFolder() @@ -132,13 +146,13 @@ public function deleteFolder($_folderId) { $folderId = $_folderId instanceof Syncroton_Model_IFolder ? $_folderId->serverId : $_folderId; - - $result = $this->_db->delete($this->_tablePrefix . 'data', array('folder_id = ?' => $folderId)); - $result = $this->_db->delete($this->_tablePrefix . 'data_folder', array('id = ?' => $folderId)); - + + $result = $this->_db->delete($this->_tablePrefix . 'data', 'folder_id = ?' => $folderId); + $result = $this->_db->delete($this->_tablePrefix . 'data_folder', 'id = ?' => $folderId); + return (bool) $result; } - + /** * (non-PHPdoc) * @see Syncroton_Data_IData::emptyFolderContents() @@ -147,7 +161,7 @@ { return true; } - + /** * (non-PHPdoc) * @see Syncroton_Data_IData::getAllFolders() @@ -158,57 +172,52 @@ ->from($this->_tablePrefix . 'data_folder') ->where('type IN (?)', $this->_supportedFolderTypes) ->where('owner_id = ?', $this->_ownerId); - + $stmt = $this->_db->query($select); $folders = $stmt->fetchAll(); $stmt = null; # see https://bugs.php.net/bug.php?id=44081 - - $result = array();
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Data/Calendar.php
Changed
@@ -17,20 +17,20 @@ */ class Syncroton_Data_Calendar extends Syncroton_Data_AData implements Syncroton_Data_IDataCalendar { - protected $_supportedFolderTypes = array( + protected $_supportedFolderTypes = Syncroton_Command_FolderSync::FOLDERTYPE_CALENDAR, - Syncroton_Command_FolderSync::FOLDERTYPE_CALENDAR_USER_CREATED - ); - + Syncroton_Command_FolderSync::FOLDERTYPE_CALENDAR_USER_CREATED, + ; + /** * set attendee status for meeting - * - * @param Syncroton_Model_MeetingResponse $request the meeting response - * @return string id of new calendar entry + * + * @param Syncroton_Model_MeetingResponse $response The meeting response + * + * @return string ID of new calendar entry */ - public function setAttendeeStatus(Syncroton_Model_MeetingResponse $reponse) + public function setAttendeeStatus(Syncroton_Model_MeetingResponse $response) { - return $reponse->requestId; + return $response->requestId; } } -
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Data/Contacts.php
Changed
@@ -15,31 +15,31 @@ * @package Syncroton * @subpackage Data */ - class Syncroton_Data_Contacts extends Syncroton_Data_AData implements Syncroton_Data_IDataSearch { - protected $_supportedFolderTypes = array( + protected $_supportedFolderTypes = Syncroton_Command_FolderSync::FOLDERTYPE_CONTACT, - Syncroton_Command_FolderSync::FOLDERTYPE_CONTACT_USER_CREATED - ); - + Syncroton_Command_FolderSync::FOLDERTYPE_CONTACT_USER_CREATED, + ; + /** * (non-PHPdoc) * @see Syncroton_Data_IDataSearch::getSearchEntry() */ public function getSearchEntry($longId, $options) { - list($collectionId, $serverId) = explode(Syncroton_Data_AData::LONGID_DELIMITER, $longId, 2); - - $contact = $this->getEntry(new Syncroton_Model_SyncCollection(array('collectionId' => $collectionId)), $serverId); - - return new Syncroton_Model_GAL(array( + $collectionId, $serverId = explode(Syncroton_Data_AData::LONGID_DELIMITER, $longId, 2); + + /** @var Syncroton_Model_Contact $contact */ + $contact = $this->getEntry(new Syncroton_Model_SyncCollection('collectionId' => $collectionId), $serverId); + + return new Syncroton_Model_GAL( 'firstName' => $contact->firstName, 'lastName' => $contact->lastName, - 'picture' => new Syncroton_Model_GALPicture(array('status' => 1, 'data' => 'abc')) - )); + 'picture' => new Syncroton_Model_GALPicture('status' => 1, 'data' => 'abc'), + ); } - + /** * (non-PHPdoc) * @see Syncroton_Data_IDataSearch::search() @@ -47,37 +47,37 @@ public function search(Syncroton_Model_StoreRequest $store) { $storeResponse = new Syncroton_Model_StoreResponse(); - + $serverIds = $this->getServerEntries('addressbookFolderId', Syncroton_Command_Sync::FILTER_NOTHING); - + $total = 0; - $found = array(); - + $found = ; + foreach ($serverIds as $serverId) { - $contact = $this->getEntry(new Syncroton_Model_SyncCollection(array('collectionId' => 'addressbookFolderId')), $serverId); - + /** @var Syncroton_Model_Contact $contact */ + $contact = $this->getEntry(new Syncroton_Model_SyncCollection('collectionId' => 'addressbookFolderId'), $serverId); + if ($contact->firstName == $store->query) { $total++; - - if (count($found) == $store->options'range'1+1) { + + if (count($found) == $store->options'range'1 + 1) { continue; } - $found = new Syncroton_Model_StoreResponseResult(array( - 'longId' => 'addressbookFolderId' . Syncroton_Data_AData::LONGID_DELIMITER . $serverId, - 'properties' => $this->getSearchEntry('addressbookFolderId' . Syncroton_Data_AData::LONGID_DELIMITER . $serverId, $store->options) - )); + $found = new Syncroton_Model_StoreResponseResult( + 'longId' => 'addressbookFolderId' . Syncroton_Data_AData::LONGID_DELIMITER . $serverId, + 'properties' => $this->getSearchEntry('addressbookFolderId' . Syncroton_Data_AData::LONGID_DELIMITER . $serverId, $store->options), + ); } } - + if (count($found) > 0) { $storeResponse->result = $found; - $storeResponse->range = array(0, count($found) - 1); + $storeResponse->range = 0, count($found) - 1; $storeResponse->total = $total; } else { - $storeResponse->total = $total; + $storeResponse->total = $total; } - + return $storeResponse; } } -
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Data/Email.php
Changed
@@ -17,52 +17,52 @@ */ class Syncroton_Data_Email extends Syncroton_Data_AData implements Syncroton_Data_IDataEmail { - protected $_supportedFolderTypes = array( + protected $_supportedFolderTypes = Syncroton_Command_FolderSync::FOLDERTYPE_DELETEDITEMS, Syncroton_Command_FolderSync::FOLDERTYPE_DRAFTS, Syncroton_Command_FolderSync::FOLDERTYPE_INBOX, Syncroton_Command_FolderSync::FOLDERTYPE_MAIL_USER_CREATED, Syncroton_Command_FolderSync::FOLDERTYPE_OUTBOX, - Syncroton_Command_FolderSync::FOLDERTYPE_SENTMAIL - ); - + Syncroton_Command_FolderSync::FOLDERTYPE_SENTMAIL, + ; + /** * (non-PHPdoc) * @see Syncroton_Data_IDataEmail::forwardEmail() */ public function forwardEmail($source, $inputStream, $saveInSent, $replaceMime) { - if ($inputStream == 'triggerException') { - throw new Syncroton_Exception_Status(Syncroton_Exception_Status::MAILBOX_SERVER_OFFLINE); - } - + if ($inputStream == 'triggerException') { + throw new Syncroton_Exception_Status(Syncroton_Exception_Status::MAILBOX_SERVER_OFFLINE); + } + // forward email } - + /** * (non-PHPdoc) * @see Syncroton_Data_AData::getFileReference() */ - public function getFileReference($fileReference) - { - list($messageId, $partId) = explode(Syncroton_Data_AData::LONGID_DELIMITER, $fileReference, 2); - - // example code - return new Syncroton_Model_FileReference(array( - 'contentType' => 'text/plain', - 'data' => 'Lars' - )); + public function getFileReference($fileReference) + { + $messageId, $partId = explode(Syncroton_Data_AData::LONGID_DELIMITER, $fileReference, 2); + + // example code + return new Syncroton_Model_FileReference( + 'contentType' => 'text/plain', + 'data' => 'Lars', + ); } - + /** * (non-PHPdoc) * @see Syncroton_Data_IDataEmail::replyEmail() - */ - public function replyEmail($source, $inputStream, $saveInSent, $replaceMime) - { - // forward email - } - + */ + public function replyEmail($source, $inputStream, $saveInSent, $replaceMime) + { + // forward email + } + /** * (non-PHPdoc) * @see Syncroton_Data_AData::updateEntry() @@ -70,8 +70,9 @@ public function updateEntry($_folderId, $_serverId, Syncroton_Model_IEntry $_entry) { // not used by email + return ''; } - + /** * (non-PHPdoc) * @see Syncroton_Data_IDataEmail::sendEmail() @@ -84,4 +85,3 @@ // send email } } -
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Data/Factory.php
Changed
@@ -18,39 +18,40 @@ class Syncroton_Data_Factory { - const CLASS_CALENDAR = 'Calendar'; - const CLASS_CONTACTS = 'Contacts'; - const CLASS_EMAIL = 'Email'; - const CLASS_NOTES = 'Notes'; - const CLASS_TASKS = 'Tasks'; - const STORE_EMAIL = 'Mailbox'; - const STORE_GAL = 'GAL'; - - protected static $_classMap = array(); - + public const CLASS_CALENDAR = 'Calendar'; + public const CLASS_CONTACTS = 'Contacts'; + public const CLASS_EMAIL = 'Email'; + public const CLASS_NOTES = 'Notes'; + public const CLASS_TASKS = 'Tasks'; + public const STORE_EMAIL = 'Mailbox'; + public const STORE_GAL = 'GAL'; + + protected static $_classMap = ; + /** - * @param unknown_type $_class + * @param string $_classFactory * @param Syncroton_Model_IDevice $_device - * @param DateTime $_timeStamp + * @param DateTime $_timeStamp + * * @throws InvalidArgumentException * @return Syncroton_Data_IData */ public static function factory($_classFactory, Syncroton_Model_IDevice $_device, DateTime $_timeStamp) { - switch($_classFactory) { + switch ($_classFactory) { case self::CLASS_CALENDAR: $className = Syncroton_Registry::get(Syncroton_Registry::CALENDAR_DATA_CLASS); break; - + case self::CLASS_CONTACTS: $className = Syncroton_Registry::get(Syncroton_Registry::CONTACTS_DATA_CLASS); break; - + case self::STORE_EMAIL: case self::CLASS_EMAIL: $className = Syncroton_Registry::get(Syncroton_Registry::EMAIL_DATA_CLASS); break; - + case self::CLASS_NOTES: $className = Syncroton_Registry::get(Syncroton_Registry::NOTES_DATA_CLASS); break; @@ -65,16 +66,14 @@ default: throw new Syncroton_Exception_UnexpectedValue('invalid class type provided'); - breeak; } - + $class = new $className($_device, $_timeStamp); - + if (! $class instanceof Syncroton_Data_IData) { throw new RuntimeException('class must be instanceof Syncroton_Data_IData'); } - + return $class; } } -
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Data/IData.php
Changed
@@ -19,37 +19,37 @@ { /** * create new entry - * + * * @param string $folderId * @param Syncroton_Model_IEntry $entry * @return string id of created entry */ public function createEntry($folderId, Syncroton_Model_IEntry $entry); - + /** * create a new folder in backend - * + * * @param Syncroton_Model_IFolder $folder * @return Syncroton_Model_IFolder */ public function createFolder(Syncroton_Model_IFolder $folder); - + /** * delete entry in backend - * + * * @param string $_folderId * @param string $_serverId * @param ?Syncroton_Model_SyncCollection $_collectionData */ public function deleteEntry($_folderId, $_serverId, $_collectionData = null); - + /** * delete folder - * + * * @param string $folderId */ public function deleteFolder($folderId); - + /** * empty folder * @@ -57,78 +57,77 @@ * @param array $options */ public function emptyFolderContents($folderId, $options); - + /** * return list off all folders * @return array of Syncroton_Model_IFolder */ public function getAllFolders(); - - public function getChangedEntries($folderId, Syncroton_Model_ISyncState $syncState, $filterType = NULL); + + public function getChangedEntries($folderId, Syncroton_Model_ISyncState $syncState, $filterType = null); /** * Retrieve extra data that is stored with the sync key * @return string|null **/ public function getExtraData(Syncroton_Model_IFolder $folder); - - + + /** * retrieve folders which were modified since last sync - * + * * @param DateTime $startTimeStamp * @param DateTime $endTimeStamp */ public function getChangedFolders(DateTime $startTimeStamp, DateTime $endTimeStamp); - + public function getCountOfChanges(Syncroton_Backend_IContent $contentBackend, Syncroton_Model_IFolder $folder, Syncroton_Model_ISyncState $syncState); - + /** - * + * * @param Syncroton_Model_SyncCollection $collection * @param string $serverId - * @return Syncroton_Model_IEntry + * @return Syncroton_Model_IXMLEntry */ public function getEntry(Syncroton_Model_SyncCollection $collection, $serverId); - + /** - * + * * @param string $fileReference * @return Syncroton_Model_FileReference */ public function getFileReference($fileReference); - + /** - * return array of all id's stored in folder - * - * @param Syncroton_Model_IFolder|string $folderId - * @param string $filter - * @return array - */ + * return array of all id's stored in folder + * + * @param Syncroton_Model_IFolder|string $folderId + * @param string $filter + * @return array + */ public function getServerEntries($folderId, $filter); /** * return true if any data got modified in the backend - * + * * @param Syncroton_Backend_IContent $contentBackend * @param Syncroton_Model_IFolder $folder * @param Syncroton_Model_ISyncState $syncState * @return bool */ public function hasChanges(Syncroton_Backend_IContent $contentBackend, Syncroton_Model_IFolder $folder, Syncroton_Model_ISyncState $syncState); - + public function moveItem($srcFolderId, $serverId, $dstFolderId); - + /** * update existing entry - * + * * @param string $folderId * @param string $serverId * @param Syncroton_Model_IEntry $entry * @return string id of updated entry */ public function updateEntry($folderId, $serverId, Syncroton_Model_IEntry $entry); - + public function updateFolder(Syncroton_Model_IFolder $folder); } -
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Data/IDataCalendar.php
Changed
@@ -19,10 +19,9 @@ { /** * set attendee status for meeting - * + * * @param Syncroton_Model_MeetingResponse $request the meeting response * @return string id of new calendar entry */ public function setAttendeeStatus(Syncroton_Model_MeetingResponse $request); } -
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Data/IDataEmail.php
Changed
@@ -19,15 +19,15 @@ { /** * send an email - * + * * @param resource $inputStream * @param boolean $saveInSent */ public function sendEmail($inputStream, $saveInSent); - + /** * forward an email - * + * * @param string|array $source is either a string(LongId) or an array with following properties collectionId, itemId and instanceId * @param string $inputStream * @param string $saveInSent @@ -36,11 +36,10 @@ /** * reply to an email - * + * * @param string|array $source is either a string(LongId) or an array with following properties collectionId, itemId and instanceId * @param string $inputStream * @param string $saveInSent */ public function replyEmail($source, $inputStream, $saveInSent, $replaceMime); } -
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Data/Notes.php
Changed
@@ -17,8 +17,8 @@ */ class Syncroton_Data_Notes extends Syncroton_Data_AData { - protected $_supportedFolderTypes = array( + protected $_supportedFolderTypes = Syncroton_Command_FolderSync::FOLDERTYPE_NOTE, - Syncroton_Command_FolderSync::FOLDERTYPE_NOTE_USER_CREATED - ); + Syncroton_Command_FolderSync::FOLDERTYPE_NOTE_USER_CREATED, + ; }
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Data/Tasks.php
Changed
@@ -17,9 +17,8 @@ */ class Syncroton_Data_Tasks extends Syncroton_Data_AData { - protected $_supportedFolderTypes = array( + protected $_supportedFolderTypes = Syncroton_Command_FolderSync::FOLDERTYPE_TASK, - Syncroton_Command_FolderSync::FOLDERTYPE_TASK_USER_CREATED - ); + Syncroton_Command_FolderSync::FOLDERTYPE_TASK_USER_CREATED, + ; } -
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Exception/Status.php
Changed
@@ -20,87 +20,87 @@ class Syncroton_Exception_Status extends Syncroton_Exception { // http://msdn.microsoft.com/en-us/library/ee218647%28v=exchg.80%29 - const INVALID_CONTENT = 101; - const INVALID_WBXML = 102; - const INVALID_XML = 103; - const INVALID_DATE_TIME = 104; - const INVALID_COMBINATION_OF_IDS = 105; - const INVALID_IDS = 106; - const INVALID_MIME = 107; - const DEVICE_MISSING_OR_INVALID = 108; - const DEVICE_TYPE_MISSING_OR_INVALID = 109; - const SERVER_ERROR = 110; - const SERVER_ERROR_RETRY_LATER = 111; - const ACTIVE_DIRECTORY_ACCESS_DENIED = 112; - const MAILBOX_QUOTA_EXCEEDED = 113; - const MAILBOX_SERVER_OFFLINE = 114; - const SEND_QUOTA_EXCEEDED = 115; - const MESSAGE_RECIPIENT_UNRESOLVED = 116; - const MESSAGE_REPLY_NOT_ALLOWED = 117; - const MESSAGE_PREVIOUSLY_SENT = 118; - const MESSAGE_HAS_NO_RECIPIENT = 119; - const MAIL_SUBMISSION_FAILED = 120; - const MESSAGE_REPLY_FAILED = 121; - const ATTACHMENT_IS_TOO_LARGE = 122; - const USER_HAS_NO_MAILBOX = 123; - const USER_CANNOT_BE_ANONYMOUS = 124; - const USER_PRINCIPAL_COULD_NOT_BE_FOUND = 125; - const USER_DISABLED_FOR_SYNC = 126; - const USER_ON_NEW_MAILBOX_CANNOT_SYNC = 127; - const USER_ON_LEGACY_MAILBOX_CANNOT_SYNC = 128; - const DEVICE_IS_BLOCKED_FOR_THIS_USER = 129; - const ACCESS_DENIED = 130; - const ACCOUNT_DISABLED = 131; - const SYNC_STATE_NOT_FOUND = 132; - const SYNC_STATE_LOCKED = 133; - const SYNC_STATE_CORRUPT = 134; - const SYNC_STATE_ALREADY_EXISTS = 135; - const SYNC_STATE_VERSION_INVALID = 136; - const COMMAND_NOT_SUPPORTED = 137; - const VERSION_NOT_SUPPORTED = 138; - const DEVICE_NOT_FULLY_PROVISIONABLE = 139; - const REMOTE_WIPE_REQUESTED = 140; - const LEGACY_DEVICE_ON_STRICT_POLICY = 141; - const DEVICE_NOT_PROVISIONED = 142; - const POLICY_REFRESH = 143; - const INVALID_POLICY_KEY = 144; - const EXTERNALLY_MANAGED_DEVICES_NOT_ALLOWED = 145; - const NO_RECURRENCE_IN_CALENDAR = 146; - const UNEXPECTED_ITEM_CLASS = 147; - const REMOTE_SERVER_HAS_NO_SSL = 148; - const INVALID_STORED_REQUEST = 149; - const ITEM_NOT_FOUND = 150; - const TOO_MANY_FOLDERS = 151; - const NO_FOLDERS_FOUND = 152; - const ITEMS_LOST_AFTER_MOVE = 153; - const FAILURE_IN_MOVE_OPERATION = 154; - const MOVE_COMMAND_DISALLOWED = 155; - const MOVE_COMMAND_INVALID_DESTINATION = 156; - const AVAILABILITY_TO_MANY_RECIPIENTS = 160; - const AVAILABILITY_DL_LIMIT_REACHED = 161; - const AVAILABILITY_TRANSIENT_FAILURE = 162; - const AVAILABILITY_FAILURE = 163; - const BODY_PART_PREFERENCE_TYPE_NOT_SUPPORTED = 164; - const DEVICE_INFORMATION_REQUIRED = 165; - const INVALID_ACCOUNT_ID = 166; - const ACCOUNT_SEND_DISABLED = 167; - CONST IRM_FEATURE_DISABLED = 168; - const IRM_TRANSIENT_ERROR = 169; - const IRM_PERMANENT_ERROR = 170; - const IRM_INVALID_TEMPLATE_ID = 171; - const IRM_OPERATION_NOT_PERMITTED = 172; - const NO_PICTURE = 173; - const PICTURE_TO_LARGE = 174; - const PICTURE_LIMIT_REACHED = 175; - const BODY_PART_CONVERSATION_TOO_LARGE = 176; - const MAXIMUM_DEVICES_REACHED = 177; + public const INVALID_CONTENT = 101; + public const INVALID_WBXML = 102; + public const INVALID_XML = 103; + public const INVALID_DATE_TIME = 104; + public const INVALID_COMBINATION_OF_IDS = 105; + public const INVALID_IDS = 106; + public const INVALID_MIME = 107; + public const DEVICE_MISSING_OR_INVALID = 108; + public const DEVICE_TYPE_MISSING_OR_INVALID = 109; + public const SERVER_ERROR = 110; + public const SERVER_ERROR_RETRY_LATER = 111; + public const ACTIVE_DIRECTORY_ACCESS_DENIED = 112; + public const MAILBOX_QUOTA_EXCEEDED = 113; + public const MAILBOX_SERVER_OFFLINE = 114; + public const SEND_QUOTA_EXCEEDED = 115; + public const MESSAGE_RECIPIENT_UNRESOLVED = 116; + public const MESSAGE_REPLY_NOT_ALLOWED = 117; + public const MESSAGE_PREVIOUSLY_SENT = 118; + public const MESSAGE_HAS_NO_RECIPIENT = 119; + public const MAIL_SUBMISSION_FAILED = 120; + public const MESSAGE_REPLY_FAILED = 121; + public const ATTACHMENT_IS_TOO_LARGE = 122; + public const USER_HAS_NO_MAILBOX = 123; + public const USER_CANNOT_BE_ANONYMOUS = 124; + public const USER_PRINCIPAL_COULD_NOT_BE_FOUND = 125; + public const USER_DISABLED_FOR_SYNC = 126; + public const USER_ON_NEW_MAILBOX_CANNOT_SYNC = 127; + public const USER_ON_LEGACY_MAILBOX_CANNOT_SYNC = 128; + public const DEVICE_IS_BLOCKED_FOR_THIS_USER = 129; + public const ACCESS_DENIED = 130; + public const ACCOUNT_DISABLED = 131; + public const SYNC_STATE_NOT_FOUND = 132; + public const SYNC_STATE_LOCKED = 133; + public const SYNC_STATE_CORRUPT = 134; + public const SYNC_STATE_ALREADY_EXISTS = 135; + public const SYNC_STATE_VERSION_INVALID = 136; + public const COMMAND_NOT_SUPPORTED = 137; + public const VERSION_NOT_SUPPORTED = 138; + public const DEVICE_NOT_FULLY_PROVISIONABLE = 139; + public const REMOTE_WIPE_REQUESTED = 140; + public const LEGACY_DEVICE_ON_STRICT_POLICY = 141; + public const DEVICE_NOT_PROVISIONED = 142; + public const POLICY_REFRESH = 143; + public const INVALID_POLICY_KEY = 144; + public const EXTERNALLY_MANAGED_DEVICES_NOT_ALLOWED = 145; + public const NO_RECURRENCE_IN_CALENDAR = 146; + public const UNEXPECTED_ITEM_CLASS = 147; + public const REMOTE_SERVER_HAS_NO_SSL = 148; + public const INVALID_STORED_REQUEST = 149; + public const ITEM_NOT_FOUND = 150; + public const TOO_MANY_FOLDERS = 151; + public const NO_FOLDERS_FOUND = 152; + public const ITEMS_LOST_AFTER_MOVE = 153; + public const FAILURE_IN_MOVE_OPERATION = 154; + public const MOVE_COMMAND_DISALLOWED = 155; + public const MOVE_COMMAND_INVALID_DESTINATION = 156; + public const AVAILABILITY_TO_MANY_RECIPIENTS = 160; + public const AVAILABILITY_DL_LIMIT_REACHED = 161; + public const AVAILABILITY_TRANSIENT_FAILURE = 162; + public const AVAILABILITY_FAILURE = 163; + public const BODY_PART_PREFERENCE_TYPE_NOT_SUPPORTED = 164; + public const DEVICE_INFORMATION_REQUIRED = 165; + public const INVALID_ACCOUNT_ID = 166; + public const ACCOUNT_SEND_DISABLED = 167; + public const IRM_FEATURE_DISABLED = 168; + public const IRM_TRANSIENT_ERROR = 169; + public const IRM_PERMANENT_ERROR = 170; + public const IRM_INVALID_TEMPLATE_ID = 171; + public const IRM_OPERATION_NOT_PERMITTED = 172; + public const NO_PICTURE = 173; + public const PICTURE_TO_LARGE = 174; + public const PICTURE_LIMIT_REACHED = 175; + public const BODY_PART_CONVERSATION_TOO_LARGE = 176; + public const MAXIMUM_DEVICES_REACHED = 177; /** * Common error messages assigned to error codes * * @var array */ - protected $_commonMessages = array( + protected $_commonMessages = self::INVALID_CONTENT => "Invalid request body", self::INVALID_WBXML => "Invalid WBXML request", self::INVALID_XML => "Invalid XML request", @@ -175,20 +175,20 @@ self::PICTURE_LIMIT_REACHED => "The number of contact photos returned exceeds the size limit set by the MaxPictures element", self::BODY_PART_CONVERSATION_TOO_LARGE => "The conversation is too large to compute the body parts", self::MAXIMUM_DEVICES_REACHED => "The user's account has too many device partnerships", - ); + ; /** * Error messages assigned to class-specific error codes * * @var array */ - protected $_errorMessages = array(); + protected $_errorMessages = ; /** * Constructor */ - function __construct() + public function __construct() { $args = func_get_args(); @@ -202,7 +202,7 @@ $message = $args0; } - if (!$code) { + if (empty($code)) { $code = self::SERVER_ERROR; }
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Exception/Status/Autodiscover.php
Changed
@@ -19,14 +19,14 @@ */ class Syncroton_Exception_Status_Autodiscover extends Syncroton_Exception_Status { - const PROTOCOL_ERROR = 2; + public const PROTOCOL_ERROR = 2; /** * Error messages assigned to error codes * * @var array */ - protected $_errorMessages = array( + protected $_errorMessages = self::PROTOCOL_ERROR => "Protocol error", - ); + ; }
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Exception/Status/FolderCreate.php
Changed
@@ -19,21 +19,21 @@ */ class Syncroton_Exception_Status_FolderCreate extends Syncroton_Exception_Status { - const FOLDER_EXISTS = 2; - const SPECIAL_FOLDER = 3; - const PARENT_NOT_FOUND = 5; - const FOLDER_SERVER_ERROR = 6; - const INVALID_SYNCKEY = 9; - const INVALID_REQUEST = 10; - const UNKNOWN_ERROR = 11; - const UNKNOWN_CODE = 12; + public const FOLDER_EXISTS = 2; + public const SPECIAL_FOLDER = 3; + public const PARENT_NOT_FOUND = 5; + public const FOLDER_SERVER_ERROR = 6; + public const INVALID_SYNCKEY = 9; + public const INVALID_REQUEST = 10; + public const UNKNOWN_ERROR = 11; + public const UNKNOWN_CODE = 12; /** * Error messages assigned to error codes * * @var array */ - protected $_errorMessages = array( + protected $_errorMessages = self::FOLDER_EXISTS => "A folder that has this name already exists", self::SPECIAL_FOLDER => "The specified folder is a special system folder", self::PARENT_NOT_FOUND => "The specified parent folder was not found", @@ -42,5 +42,5 @@ self::INVALID_REQUEST => "Malformed request", self::UNKNOWN_ERROR => "An unknown error occurred", self::UNKNOWN_CODE => "Unusual back-end issue", - ); + ; }
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Exception/Status/FolderDelete.php
Changed
@@ -19,24 +19,24 @@ */ class Syncroton_Exception_Status_FolderDelete extends Syncroton_Exception_Status { - const SPECIAL_FOLDER = 3; - const FOLDER_NOT_FOUND = 4; - const FOLDER_SERVER_ERROR = 6; - const INVALID_SYNCKEY = 9; - const INVALID_REQUEST = 10; - const UNKNOWN_ERROR = 11; + public const SPECIAL_FOLDER = 3; + public const FOLDER_NOT_FOUND = 4; + public const FOLDER_SERVER_ERROR = 6; + public const INVALID_SYNCKEY = 9; + public const INVALID_REQUEST = 10; + public const UNKNOWN_ERROR = 11; /** * Error messages assigned to error codes * * @var array */ - protected $_errorMessages = array( + protected $_errorMessages = self::SPECIAL_FOLDER => "The specified folder is a special system folder", self::FOLDER_NOT_FOUND => "The specified folder doesn't exist", self::FOLDER_SERVER_ERROR => "An error occurred on the server", self::INVALID_SYNCKEY => "Synchronization key mismatch or invalid synchronization key", self::INVALID_REQUEST => "Malformed request", self::UNKNOWN_ERROR => "An unknown error occurred", - ); + ; }
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Exception/Status/FolderSync.php
Changed
@@ -19,22 +19,22 @@ */ class Syncroton_Exception_Status_FolderSync extends Syncroton_Exception_Status { - const FOLDER_SERVER_ERROR = 6; - const INVALID_SYNCKEY = 9; - const INVALID_REQUEST = 10; - const UNKNOWN_ERROR = 11; - const UNKNOWN_CODE = 12; + public const FOLDER_SERVER_ERROR = 6; + public const INVALID_SYNCKEY = 9; + public const INVALID_REQUEST = 10; + public const UNKNOWN_ERROR = 11; + public const UNKNOWN_CODE = 12; /** * Error messages assigned to error codes * * @var array */ - protected $_errorMessages = array( + protected $_errorMessages = self::FOLDER_SERVER_ERROR => "An error occurred on the server", self::INVALID_SYNCKEY => "Synchronization key mismatch or invalid synchronization key", self::INVALID_REQUEST => "Malformed request", self::UNKNOWN_ERROR => "An unknown error occurred", self::UNKNOWN_CODE => "Unusual back-end issue", - ); + ; }
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Exception/Status/FolderUpdate.php
Changed
@@ -19,21 +19,21 @@ */ class Syncroton_Exception_Status_FolderUpdate extends Syncroton_Exception_Status { - const FOLDER_EXISTS = 2; - const SPECIAL_FOLDER = 3; - const FOLDER_NOT_FOUND = 4; - const PARENT_NOT_FOUND = 5; - const FOLDER_SERVER_ERROR = 6; - const INVALID_SYNCKEY = 9; - const INVALID_REQUEST = 10; - const UNKNOWN_ERROR = 11; + public const FOLDER_EXISTS = 2; + public const SPECIAL_FOLDER = 3; + public const FOLDER_NOT_FOUND = 4; + public const PARENT_NOT_FOUND = 5; + public const FOLDER_SERVER_ERROR = 6; + public const INVALID_SYNCKEY = 9; + public const INVALID_REQUEST = 10; + public const UNKNOWN_ERROR = 11; /** * Error messages assigned to error codes * * @var array */ - protected $_errorMessages = array( + protected $_errorMessages = self::FOLDER_EXISTS => "A folder that has this name already exists or is a special folder", self::SPECIAL_FOLDER => "The specified folder is the Recipient information folder which cannot be updated", self::FOLDER_NOT_FOUND => "The specified folder doesn't exist", @@ -42,5 +42,5 @@ self::INVALID_SYNCKEY => "Synchronization key mismatch or invalid synchronization key", self::INVALID_REQUEST => "Malformed request", self::UNKNOWN_ERROR => "An unknown error occurred", - ); + ; }
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Exception/Status/GetItemEstimate.php
Changed
@@ -19,18 +19,18 @@ */ class Syncroton_Exception_Status_GetItemEstimate extends Syncroton_Exception_Status { - const INVALID_COLLECTION = 2; - const SYNCSTATE_NOT_PRIMED = 3; - const INVALID_SYNCKEY = 4; + public const INVALID_COLLECTION = 2; + public const SYNCSTATE_NOT_PRIMED = 3; + public const INVALID_SYNCKEY = 4; /** * Error messages assigned to error codes * * @var array */ - protected $_errorMessages = array( + protected $_errorMessages = self::INVALID_COLLECTION => "A collection was invalid or one of the specified collection IDs was invalid", self::SYNCSTATE_NOT_PRIMED => "The synchronization state has not been primed", self::INVALID_SYNCKEY => "The specified synchronization key was invalid", - ); + ; }
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Exception/Status/ItemOperations.php
Changed
@@ -19,29 +19,29 @@ */ class Syncroton_Exception_Status_ItemOperations extends Syncroton_Exception_Status { - const PROTOCOL_ERROR = 2; - const ITEM_SERVER_ERROR = 3; - const DOCLIB_INVALID_URI = 4; - const DOCLIB_ACCESS_DENIED = 5; - const DOCLIB_NOT_FOUND = 6; - const DOCLIB_CONN_FAILED = 7; - const INVALID_BYTE_RANGE = 8; - const UNKNOWN_STORE = 9; - const FILE_EMPTY = 10; - const DATA_TOO_LARGE = 11; - const FILE_IO_ERROR = 12; - const CONVERSION_ERROR = 14; - const INVALID_ATTACHMENT = 15; - const RESOURCE_ACCESS_DENIED = 16; - const PARTIAL_SUCCESS = 17; - const CREDENTIALS_REQUIRED = 18; + public const PROTOCOL_ERROR = 2; + public const ITEM_SERVER_ERROR = 3; + public const DOCLIB_INVALID_URI = 4; + public const DOCLIB_ACCESS_DENIED = 5; + public const DOCLIB_NOT_FOUND = 6; + public const DOCLIB_CONN_FAILED = 7; + public const INVALID_BYTE_RANGE = 8; + public const UNKNOWN_STORE = 9; + public const FILE_EMPTY = 10; + public const DATA_TOO_LARGE = 11; + public const FILE_IO_ERROR = 12; + public const CONVERSION_ERROR = 14; + public const INVALID_ATTACHMENT = 15; + public const RESOURCE_ACCESS_DENIED = 16; + public const PARTIAL_SUCCESS = 17; + public const CREDENTIALS_REQUIRED = 18; /** * Error messages assigned to error codes * * @var array */ - protected $_errorMessages = array( + protected $_errorMessages = self::PROTOCOL_ERROR => "Protocol error - protocol violation/XML validation error", self::ITEM_SERVER_ERROR => "Server error", self::DOCLIB_INVALID_URI => "Document library access - The specified URI is bad", @@ -58,5 +58,5 @@ self::RESOURCE_ACCESS_DENIED => "Access to the resource is denied", self::PARTIAL_SUCCESS => "Partial success; the command completed partially", self::CREDENTIALS_REQUIRED => "Credentials required", - ); + ; }
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Exception/Status/MeetingResponse.php
Changed
@@ -19,18 +19,18 @@ */ class Syncroton_Exception_Status_MeetingResponse extends Syncroton_Exception_Status { - const INVALID_REQUEST = 2; - const MEETING_SERVER_ERROR = 3; - const MEETING_ERROR = 4; + public const INVALID_REQUEST = 2; + public const MEETING_SERVER_ERROR = 3; + public const MEETING_ERROR = 4; /** * Error messages assigned to error codes * * @var array */ - protected $_errorMessages = array( + protected $_errorMessages = self::INVALID_REQUEST => "Invalid meeting request", self::MEETING_SERVER_ERROR => "An error occurred on the server mailbox", self::MEETING_ERROR => "An error occurred on the server", - ); + ; }
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Exception/Status/MoveItems.php
Changed
@@ -19,22 +19,22 @@ */ class Syncroton_Exception_Status_MoveItems extends Syncroton_Exception_Status { - const INVALID_SOURCE = 1; - const INVALID_DESTINATION = 2; - const SAME_FOLDER = 4; - const ITEM_EXISTS_OR_LOCKED = 5; - const FOLDER_LOCKED = 7; + public const INVALID_SOURCE = 1; + public const INVALID_DESTINATION = 2; + public const SAME_FOLDER = 4; + public const ITEM_EXISTS_OR_LOCKED = 5; + public const FOLDER_LOCKED = 7; /** * Error messages assigned to error codes * * @var array */ - protected $_errorMessages = array( + protected $_errorMessages = self::INVALID_SOURCE => "Invalid source collection ID or item ID", self::INVALID_DESTINATION => "Invalid destination collection ID", self::SAME_FOLDER => "Source and destination collection IDs are the same", self::ITEM_EXISTS_OR_LOCKED => "The item cannot be moved to more than one item at a time, or the source or destination item was locked", self::FOLDER_LOCKED => "Source or destination item was locked", - ); + ; }
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Exception/Status/Settings.php
Changed
@@ -19,24 +19,24 @@ */ class Syncroton_Exception_Status_Settings extends Syncroton_Exception_Status { - const PROTOCOL_ERROR = 2; - const ACCESS_DENIED = 3; - const SERVICE_UNAVAILABLE = 4; - const INVALID_ARGUMENTS = 5; - const CONFLICTING_ARGUMENTS = 6; - const DENIED_BY_POLICY = 7; + public const PROTOCOL_ERROR = 2; + public const ACCESS_DENIED = 3; + public const SERVICE_UNAVAILABLE = 4; + public const INVALID_ARGUMENTS = 5; + public const CONFLICTING_ARGUMENTS = 6; + public const DENIED_BY_POLICY = 7; /** * Error messages assigned to error codes * * @var array */ - protected $_errorMessages = array( + protected $_errorMessages = self::PROTOCOL_ERROR => "Protocol error", self::ACCESS_DENIED => "Access denied", self::SERVICE_UNAVAILABLE => "Server unavailable", self::INVALID_ARGUMENTS => "Invalid arguments", self::CONFLICTING_ARGUMENTS => "Conflicting arguments", self::DENIED_BY_POLICY => "Denied by policy. Disabled by administrator", - ); + ; }
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Exception/Status/Sync.php
Changed
@@ -19,25 +19,25 @@ */ class Syncroton_Exception_Status_Sync extends Syncroton_Exception_Status { - const INVALID_SYNCKEY = 3; - const PROTOCOL_ERROR = 4; - const SYNC_SERVER_ERROR = 5; - const INVALID_ITEM = 6; - const OBJECT_CONFLICT = 7; - const OBJECT_NOT_FOUND = 8; - const SYNC_ERROR = 9; - const HIERARCHY_CHANGED = 12; - const INCOMPLETE_REQUEST = 13; - const INVALID_INTERVAL = 14; - const INVALID_REQUEST = 15; - const SYNC_RETRY = 16; + public const INVALID_SYNCKEY = 3; + public const PROTOCOL_ERROR = 4; + public const SYNC_SERVER_ERROR = 5; + public const INVALID_ITEM = 6; + public const OBJECT_CONFLICT = 7; + public const OBJECT_NOT_FOUND = 8; + public const SYNC_ERROR = 9; + public const HIERARCHY_CHANGED = 12; + public const INCOMPLETE_REQUEST = 13; + public const INVALID_INTERVAL = 14; + public const INVALID_REQUEST = 15; + public const SYNC_RETRY = 16; /** * Error messages assigned to error codes * * @var array */ - protected $_errorMessages = array( + protected $_errorMessages = self::INVALID_SYNCKEY => "Invalid synchronization key", self::PROTOCOL_ERROR => "Protocol error", self::SYNC_SERVER_ERROR => "Server error", @@ -50,5 +50,5 @@ self::INVALID_INTERVAL => "Invalid Wait or HeartbeatInterval value", self::INVALID_REQUEST => "Too many collections are included in the Sync request", self::SYNC_RETRY => "Something on the server caused a retriable error", - ); + ; }
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Model/AEntry.php
Changed
@@ -15,13 +15,12 @@ * @package Syncroton * @subpackage Model */ - abstract class Syncroton_Model_AEntry implements Syncroton_Model_IEntry, IteratorAggregate, Countable { - protected $_elements = array(); - + protected $_elements = ; + protected $_isDirty; - + /** * (non-PHPdoc) * @see Syncroton_Model_IEntry::__construct() @@ -31,31 +30,31 @@ if (is_array($properties)) { $this->setFromArray($properties); } - + $this->_isDirty = false; } - - + + /** * (non-PHPdoc) * @see Countable::count() - */ + */ #\ReturnTypeWillChange public function count() { return count($this->_elements); } - + /** * (non-PHPdoc) * @see IteratorAggregate::getIterator() */ #\ReturnTypeWillChange - public function getIterator() - { - return new ArrayIterator($this->_elements); + public function getIterator() + { + return new ArrayIterator($this->_elements); } - + /** * (non-PHPdoc) * @see Syncroton_Model_IEntry::isDirty() @@ -64,7 +63,7 @@ { return $this->_isDirty; } - + /** * (non-PHPdoc) * @see Syncroton_Model_IEntry::setFromArray() @@ -80,28 +79,28 @@ } } } - - public function &__get($name) - { - return $this->_elements$name; - } - - public function __set($name, $value) + + public function &__get($name) + { + return $this->_elements$name; + } + + public function __set($name, $value) { if (!array_key_exists($name, $this->_elements) || $this->_elements$name != $value) { $this->_elements$name = $value; - + $this->_isDirty = true; - } - } - - public function __isset($name) - { - return isset($this->_elements$name); - } - - public function __unset($name) - { - unset($this->_elements$name); + } + } + + public function __isset($name) + { + return isset($this->_elements$name); + } + + public function __unset($name) + { + unset($this->_elements$name); } -} \ No newline at end of file +}
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Model/AXMLEntry.php
Changed
@@ -19,11 +19,11 @@ abstract class Syncroton_Model_AXMLEntry extends Syncroton_Model_AEntry implements Syncroton_Model_IXMLEntry { protected $_xmlBaseElement; - - protected $_properties = array(); - + + protected $_properties = ; + protected $_dateTimeFormat = "Y-m-d\TH:i:s.000\Z"; - + /** * (non-PHPdoc) * @see Syncroton_Model_IEntry::__construct() @@ -35,10 +35,10 @@ } elseif (is_array($properties)) { $this->setFromArray($properties); } - + $this->_isDirty = false; } - + /** * (non-PHPdoc) * @see Syncroton_Model_IEntry::appendXML() @@ -46,27 +46,27 @@ public function appendXML(DOMElement $domParrent, Syncroton_Model_IDevice $device) { $this->_addXMLNamespaces($domParrent); - + foreach($this->_elements as $elementName => $value) { // skip empty values if($value === null || $value === '' || (is_array($value) && empty($value))) { continue; } - - list ($nameSpace, $elementProperties) = $this->_getElementProperties($elementName); - - if ($nameSpace == 'Internal') { - continue; - } - - $elementVersion = isset($elementProperties'supportedSince') ? $elementProperties'supportedSince' : '12.0'; - + + $nameSpace, $elementProperties = $this->_getElementProperties($elementName); + + if ($nameSpace == 'Internal') { + continue; + } + + $elementVersion = $elementProperties'supportedSince' ?? '12.0'; + if (version_compare($device->acsversion, $elementVersion, '<')) { continue; } - + $nameSpace = 'uri:' . $nameSpace; - + if (isset($elementProperties'childElement')) { $element = $domParrent->ownerDocument->createElementNS($nameSpace, ucfirst($elementName)); foreach($value as $subValue) { @@ -75,13 +75,13 @@ $element->appendChild($subElement); } $domParrent->appendChild($element); - } else if ($elementProperties'type' == 'container' && !empty($elementProperties'multiple')) { + } elseif ($elementProperties'type' == 'container' && !empty($elementProperties'multiple')) { foreach ($value as $element) { $container = $domParrent->ownerDocument->createElementNS($nameSpace, ucfirst($elementName)); $element->appendXML($container, $device); $domParrent->appendChild($container); } - } else if ($elementProperties'type' == 'none') { + } elseif ($elementProperties'type' == 'none') { if ($value) { $element = $domParrent->ownerDocument->createElementNS($nameSpace, ucfirst($elementName)); $domParrent->appendChild($element); @@ -93,80 +93,80 @@ } } } - + /** * (non-PHPdoc) * @see Syncroton_Model_IEntry::getProperties() */ public function getProperties($selectedNamespace = null) { - $properties = array(); - + $properties = ; + foreach($this->_properties as $namespace => $namespaceProperties) { if ($selectedNamespace !== null && $namespace != $selectedNamespace) { continue; } - $properties = array_merge($properties, array_keys($namespaceProperties)); + $properties = array_merge($properties, array_keys($namespaceProperties)); } - + return $properties; - + } - - /** - * set properties from SimpleXMLElement object - * - * @param SimpleXMLElement $xmlCollection - * @throws InvalidArgumentException - */ - public function setFromSimpleXMLElement(SimpleXMLElement $properties) - { + + /** + * set properties from SimpleXMLElement object + * + * @param SimpleXMLElement $properties + * @throws InvalidArgumentException + */ + public function setFromSimpleXMLElement(SimpleXMLElement $properties) + { if (!in_array($properties->getName(), (array) $this->_xmlBaseElement)) { - throw new InvalidArgumentException('Unexpected element name: ' . $properties->getName()); - } - + throw new InvalidArgumentException('Unexpected element name: ' . $properties->getName()); + } + foreach (array_keys($this->_properties) as $namespace) { if ($namespace == 'Internal') { continue; } - - $this->_parseNamespace($namespace, $properties); - } - - return; + + $this->_parseNamespace($namespace, $properties); + } + + return; } - + /** * add needed xml namespaces to DomDocument - * - * @param unknown_type $domParrent + * + * @param DOMElement $domParent */ - protected function _addXMLNamespaces(DOMElement $domParrent) + protected function _addXMLNamespaces(DOMElement $domParent) { - foreach($this->_properties as $namespace => $namespaceProperties) { + foreach ($this->_properties as $namespace => $namespaceProperties) { // don't add default namespace again - if($domParrent->ownerDocument->documentElement->namespaceURI != 'uri:'.$namespace) { - $domParrent->ownerDocument->documentElement->setAttributeNS('http://www.w3.org/2000/xmlns/', 'xmlns:'.$namespace, 'uri:'.$namespace); - } + if ($domParent->ownerDocument->documentElement->namespaceURI != 'uri:' . $namespace) { + $domParent->ownerDocument->documentElement->setAttributeNS('http://www.w3.org/2000/xmlns/', 'xmlns:' . $namespace, 'uri:' . $namespace); + } } - } - + } + protected function _appendXMLElement(Syncroton_Model_IDevice $device, DOMElement $element, $elementProperties, $value) { - if ($value instanceof Syncroton_Model_IEntry) { - $value->appendXML($element, $device); - } else { - if ($value instanceof DateTime) { + if ($value instanceof Syncroton_Model_IEntry) { + $value->appendXML($element, $device); // @phpstan-ignore-line + } else { + if ($value instanceof DateTime) { $value = $value->format($this->_dateTimeFormat); - - } elseif (isset($elementProperties'encoding') && $elementProperties'encoding' == 'base64') { - if (is_resource($value)) { + + } elseif (isset($elementProperties'encoding') && $elementProperties'encoding' == 'base64') { + if (is_resource($value)) { rewind($value); - $value = stream_get_contents($value); - }
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Model/Account.php
Changed
@@ -14,30 +14,30 @@ * * @package Syncroton * @subpackage Model - * @property string accountId - * @property string accountName - * @property string userDisplayName - * @property bool sendDisabled - * @property string primaryAddress - * @property array addresses + * @property string $accountId + * @property string $accountName + * @property string $userDisplayName + * @property bool $sendDisabled + * @property string $primaryAddress + * @property array $addresses */ class Syncroton_Model_Account extends Syncroton_Model_AXMLEntry { protected $_xmlBaseElement = 'Account'; - protected $_properties = array( - 'Settings' => array( - 'accountId' => array('type' => 'string'), - 'accountName' => array('type' => 'string'), - 'userDisplayName' => array('type' => 'string'), - 'sendDisabled' => array('type' => 'number'), + protected $_properties = + 'Settings' => + 'accountId' => 'type' => 'string', + 'accountName' => 'type' => 'string', + 'userDisplayName' => 'type' => 'string', + 'sendDisabled' => 'type' => 'number', // 'emailAddresses' => array('type' => 'container'), - ), - 'Internal' => array( - 'primaryAddress' => array('type' => 'string'), - 'addresses' => array('type' => 'array'), - ), - ); + , + 'Internal' => + 'primaryAddress' => 'type' => 'string', + 'addresses' => 'type' => 'array', + , + ; /** * (non-PHPdoc)
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Model/Contact.php
Changed
@@ -14,90 +14,91 @@ * * @package Syncroton * @subpackage Model - * @property string Alias - * @property DateTime Anniversary - * @property string AssistantName - * @property string AssistantPhoneNumber - * @property DateTime Birthday - * @property string Business2PhoneNumber - * @property string BusinessAddressCity - * @property Syncroton_Model_EmailBody Body + * @property string $alias + * @property DateTime $anniversary + * @property string $assistantName + * @property string $assistantPhoneNumber + * @property DateTime $birthday + * @property string $business2PhoneNumber + * @property string $businessAddressCity + * @property Syncroton_Model_EmailBody $body + * @property string $firstName + * @property string $lastName */ - class Syncroton_Model_Contact extends Syncroton_Model_AXMLEntry { protected $_xmlBaseElement = 'ApplicationData'; - - protected $_properties = array( - 'AirSyncBase' => array( - 'body' => array('type' => 'container', 'class' => 'Syncroton_Model_EmailBody') - ), - 'Contacts' => array( - 'alias' => array('type' => 'string', 'supportedSince' => '14.0'), - 'anniversary' => array('type' => 'datetime'), - 'assistantName' => array('type' => 'string'), - 'assistantPhoneNumber' => array('type' => 'string'), - 'birthday' => array('type' => 'datetime'), - 'business2PhoneNumber' => array('type' => 'string'), - 'businessAddressCity' => array('type' => 'string'), - 'businessAddressCountry' => array('type' => 'string'), - 'businessAddressPostalCode' => array('type' => 'string'), - 'businessAddressState' => array('type' => 'string'), - 'businessAddressStreet' => array('type' => 'string'), - 'businessFaxNumber' => array('type' => 'string'), - 'businessPhoneNumber' => array('type' => 'string'), - 'carPhoneNumber' => array('type' => 'string'), - 'categories' => array('type' => 'container', 'childElement' => 'category'), - 'children' => array('type' => 'container', 'childElement' => 'child'), - 'companyName' => array('type' => 'string'), - 'department' => array('type' => 'string'), - 'email1Address' => array('type' => 'string'), - 'email2Address' => array('type' => 'string'), - 'email3Address' => array('type' => 'string'), - 'fileAs' => array('type' => 'string'), - 'firstName' => array('type' => 'string'), - 'home2PhoneNumber' => array('type' => 'string'), - 'homeAddressCity' => array('type' => 'string'), - 'homeAddressCountry' => array('type' => 'string'), - 'homeAddressPostalCode' => array('type' => 'string'), - 'homeAddressState' => array('type' => 'string'), - 'homeAddressStreet' => array('type' => 'string'), - 'homeFaxNumber' => array('type' => 'string'), - 'homePhoneNumber' => array('type' => 'string'), - 'jobTitle' => array('type' => 'string'), - 'lastName' => array('type' => 'string'), - 'middleName' => array('type' => 'string'), - 'mobilePhoneNumber' => array('type' => 'string'), - 'officeLocation' => array('type' => 'string'), - 'otherAddressCity' => array('type' => 'string'), - 'otherAddressCountry' => array('type' => 'string'), - 'otherAddressPostalCode' => array('type' => 'string'), - 'otherAddressState' => array('type' => 'string'), - 'otherAddressStreet' => array('type' => 'string'), - 'pagerNumber' => array('type' => 'string'), - 'picture' => array('type' => 'string', 'encoding' => 'base64'), - 'padioPhoneNumber' => array('type' => 'string'), - 'rtf' => array('type' => 'string'), - 'spouse' => array('type' => 'string'), - 'suffix' => array('type' => 'string'), - 'title' => array('type' => 'string'), - 'webPage' => array('type' => 'string'), - 'weightedRank' => array('type' => 'string', 'supportedSince' => '14.0'), - 'yomiCompanyName' => array('type' => 'string'), - 'yomiFirstName' => array('type' => 'string'), - 'yomiLastName' => array('type' => 'string'), - ), - 'Contacts2' => array( - 'accountName' => array('type' => 'string'), - 'companyMainPhone' => array('type' => 'string'), - 'customerId' => array('type' => 'string'), - 'governmentId' => array('type' => 'string'), - 'iMAddress' => array('type' => 'string'), - 'iMAddress2' => array('type' => 'string'), - 'iMAddress3' => array('type' => 'string'), - 'managerName' => array('type' => 'string'), - 'mMS' => array('type' => 'string'), - 'nickName' => array('type' => 'string'), - ) - ); -} \ No newline at end of file + + protected $_properties = + 'AirSyncBase' => + 'body' => 'type' => 'container', 'class' => 'Syncroton_Model_EmailBody', + , + 'Contacts' => + 'alias' => 'type' => 'string', 'supportedSince' => '14.0', + 'anniversary' => 'type' => 'datetime', + 'assistantName' => 'type' => 'string', + 'assistantPhoneNumber' => 'type' => 'string', + 'birthday' => 'type' => 'datetime', + 'business2PhoneNumber' => 'type' => 'string', + 'businessAddressCity' => 'type' => 'string', + 'businessAddressCountry' => 'type' => 'string', + 'businessAddressPostalCode' => 'type' => 'string', + 'businessAddressState' => 'type' => 'string', + 'businessAddressStreet' => 'type' => 'string', + 'businessFaxNumber' => 'type' => 'string', + 'businessPhoneNumber' => 'type' => 'string', + 'carPhoneNumber' => 'type' => 'string', + 'categories' => 'type' => 'container', 'childElement' => 'category', + 'children' => 'type' => 'container', 'childElement' => 'child', + 'companyName' => 'type' => 'string', + 'department' => 'type' => 'string', + 'email1Address' => 'type' => 'string', + 'email2Address' => 'type' => 'string', + 'email3Address' => 'type' => 'string', + 'fileAs' => 'type' => 'string', + 'firstName' => 'type' => 'string', + 'home2PhoneNumber' => 'type' => 'string', + 'homeAddressCity' => 'type' => 'string', + 'homeAddressCountry' => 'type' => 'string', + 'homeAddressPostalCode' => 'type' => 'string', + 'homeAddressState' => 'type' => 'string', + 'homeAddressStreet' => 'type' => 'string', + 'homeFaxNumber' => 'type' => 'string', + 'homePhoneNumber' => 'type' => 'string', + 'jobTitle' => 'type' => 'string', + 'lastName' => 'type' => 'string', + 'middleName' => 'type' => 'string', + 'mobilePhoneNumber' => 'type' => 'string', + 'officeLocation' => 'type' => 'string', + 'otherAddressCity' => 'type' => 'string', + 'otherAddressCountry' => 'type' => 'string', + 'otherAddressPostalCode' => 'type' => 'string', + 'otherAddressState' => 'type' => 'string', + 'otherAddressStreet' => 'type' => 'string', + 'pagerNumber' => 'type' => 'string', + 'picture' => 'type' => 'string', 'encoding' => 'base64', + 'padioPhoneNumber' => 'type' => 'string', + 'rtf' => 'type' => 'string', + 'spouse' => 'type' => 'string', + 'suffix' => 'type' => 'string', + 'title' => 'type' => 'string', + 'webPage' => 'type' => 'string', + 'weightedRank' => 'type' => 'string', 'supportedSince' => '14.0', + 'yomiCompanyName' => 'type' => 'string', + 'yomiFirstName' => 'type' => 'string', + 'yomiLastName' => 'type' => 'string', + , + 'Contacts2' => + 'accountName' => 'type' => 'string', + 'companyMainPhone' => 'type' => 'string', + 'customerId' => 'type' => 'string', + 'governmentId' => 'type' => 'string', + 'iMAddress' => 'type' => 'string', + 'iMAddress2' => 'type' => 'string', + 'iMAddress3' => 'type' => 'string', + 'managerName' => 'type' => 'string', + 'mMS' => 'type' => 'string', + 'nickName' => 'type' => 'string', + , + ; +}
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Model/Content.php
Changed
@@ -18,4 +18,3 @@ class Syncroton_Model_Content extends Syncroton_Model_AEntry implements Syncroton_Model_IContent { } -
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Model/Device.php
Changed
@@ -17,37 +17,36 @@ */ class Syncroton_Model_Device extends Syncroton_Model_AEntry implements Syncroton_Model_IDevice { - const TYPE_IPHONE = 'iphone'; - const TYPE_WEBOS = 'webos'; - const TYPE_ANDROID = 'android'; - const TYPE_ANDROID_40 = 'android40'; - const TYPE_SMASUNGGALAXYS2 = 'samsunggti9100'; // Samsung Galaxy S-3 - const TYPE_BLACKBERRY = 'blackberry'; - + public const TYPE_IPHONE = 'iphone'; + public const TYPE_WEBOS = 'webos'; + public const TYPE_ANDROID = 'android'; + public const TYPE_ANDROID_40 = 'android40'; + public const TYPE_SMASUNGGALAXYS2 = 'samsunggti9100'; // Samsung Galaxy S-3 + public const TYPE_BLACKBERRY = 'blackberry'; + /** * Returns major firmware version of this device - * - * @return int/string + * + * @return int|string */ public function getMajorVersion() { switch (strtolower($this->devicetype)) { case Syncroton_Model_Device::TYPE_BLACKBERRY: if (preg_match('/(.+)\/(.+)/', $this->useragent, $matches)) { - list(, $name, $version) = $matches; + , $name, $version = $matches; return $version; } break; - + case Syncroton_Model_Device::TYPE_IPHONE: if (preg_match('/(.+)\/(\d+)\.(\d+)/', $this->useragent, $matches)) { - list(, $name, $majorVersion, $minorVersion) = $matches; + , $name, $majorVersion, $minorVersion = $matches; return $majorVersion; } break; } - + return 0; } } -
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Model/DeviceInformation.php
Changed
@@ -14,29 +14,29 @@ * * @package Syncroton * @subpackage Model - * @property string friendlyName - * @property string iMEI - * @property string mobileOperator - * @property string model - * @property string oS - * @property string oSLanguage - * @property string phoneNumber + * @property string $friendlyName + * @property string $iMEI + * @property string $mobileOperator + * @property string $model + * @property string $oS + * @property string $oSLanguage + * @property string $phoneNumber */ class Syncroton_Model_DeviceInformation extends Syncroton_Model_AXMLEntry { protected $_xmlBaseElement = 'Set'; - - protected $_properties = array( - 'Settings' => array( - 'enableOutboundSMS' => array('type' => 'number'), - 'friendlyName' => array('type' => 'string'), - 'iMEI' => array('type' => 'string'), - 'mobileOperator' => array('type' => 'string'), - 'model' => array('type' => 'string'), - 'oS' => array('type' => 'string'), - 'oSLanguage' => array('type' => 'string'), - 'phoneNumber' => array('type' => 'string') - ), - ); -} \ No newline at end of file + + protected $_properties = + 'Settings' => + 'enableOutboundSMS' => 'type' => 'number', + 'friendlyName' => 'type' => 'string', + 'iMEI' => 'type' => 'string', + 'mobileOperator' => 'type' => 'string', + 'model' => 'type' => 'string', + 'oS' => 'type' => 'string', + 'oSLanguage' => 'type' => 'string', + 'phoneNumber' => 'type' => 'string', + , + ; +}
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Model/Email.php
Changed
@@ -14,77 +14,77 @@ * * @package Syncroton * @subpackage Model - * @property array attachments - * @property string contentType - * @property array flag - * @property Syncroton_Model_EmailBody body - * @property array cc - * @property array to - * @property int lastVerbExecuted - * @property DateTime lastVerbExecutionTime - * @property int read + * @property array $attachments + * @property string $contentType + * @property array $flag + * @property Syncroton_Model_EmailBody $body + * @property array $cc + * @property array $to + * @property int $lastVerbExecuted + * @property DateTime $lastVerbExecutionTime + * @property int $read */ class Syncroton_Model_Email extends Syncroton_Model_AXMLEntry { - const LASTVERB_UNKNOWN = 0; - const LASTVERB_REPLYTOSENDER = 1; - const LASTVERB_REPLYTOALL = 2; - const LASTVERB_FORWARD = 3; - + public const LASTVERB_UNKNOWN = 0; + public const LASTVERB_REPLYTOSENDER = 1; + public const LASTVERB_REPLYTOALL = 2; + public const LASTVERB_FORWARD = 3; + protected $_xmlBaseElement = 'ApplicationData'; - - protected $_properties = array( - 'AirSyncBase' => array( - 'attachments' => array('type' => 'container', 'childElement' => 'attachment', 'class' => 'Syncroton_Model_EmailAttachment'), - 'contentType' => array('type' => 'string'), - 'body' => array('type' => 'container', 'class' => 'Syncroton_Model_EmailBody'), - 'nativeBodyType' => array('type' => 'number'), - ), - 'Email' => array( - 'busyStatus' => array('type' => 'number'), - 'categories' => array('type' => 'container', 'childElement' => 'category', 'supportedSince' => '14.0'), - 'cc' => array('type' => 'string'), - 'completeTime' => array('type' => 'datetime'), - 'contentClass' => array('type' => 'string'), - 'dateReceived' => array('type' => 'datetime'), - 'disallowNewTimeProposal' => array('type' => 'number'), - 'displayTo' => array('type' => 'string'), - 'dTStamp' => array('type' => 'datetime'), - 'endTime' => array('type' => 'datetime'), - 'flag' => array('type' => 'container', 'class' => 'Syncroton_Model_EmailFlag'), - 'from' => array('type' => 'string'), - 'globalObjId' => array('type' => 'string'), - 'importance' => array('type' => 'number'), - 'instanceType' => array('type' => 'number'), - 'internetCPID' => array('type' => 'string'), - 'location' => array('type' => 'string'), - 'meetingRequest' => array('type' => 'container', 'class' => 'Syncroton_Model_EmailMeetingRequest'), - 'messageClass' => array('type' => 'string'), - 'organizer' => array('type' => 'string'), - 'read' => array('type' => 'number'), - 'recurrences' => array('type' => 'container'), - 'reminder' => array('type' => 'number'), - 'replyTo' => array('type' => 'string'), - 'responseRequested' => array('type' => 'number'), - 'sensitivity' => array('type' => 'number'), - 'startTime' => array('type' => 'datetime'), - 'status' => array('type' => 'number'), - 'subject' => array('type' => 'string'), - 'threadTopic' => array('type' => 'string'), - 'timeZone' => array('type' => 'timezone'), - 'to' => array('type' => 'string'), - ), - 'Email2' => array( - 'accountId' => array('type' => 'string', 'supportedSince' => '14.1'), - 'conversationId' => array('type' => 'byteArray', 'supportedSince' => '14.0'), - 'conversationIndex' => array('type' => 'byteArray', 'supportedSince' => '14.0'), - 'lastVerbExecuted' => array('type' => 'number', 'supportedSince' => '14.0'), - 'lastVerbExecutionTime' => array('type' => 'datetime', 'supportedSince' => '14.0'), - 'meetingMessageType' => array('type' => 'number', 'supportedSince' => '14.1'), - 'receivedAsBcc' => array('type' => 'number', 'supportedSince' => '14.0'), - 'sender' => array('type' => 'string', 'supportedSince' => '14.0'), - 'umCallerID' => array('type' => 'string', 'supportedSince' => '14.0'), - 'umUserNotes' => array('type' => 'string', 'supportedSince' => '14.0'), - ), - ); + + protected $_properties = + 'AirSyncBase' => + 'attachments' => 'type' => 'container', 'childElement' => 'attachment', 'class' => 'Syncroton_Model_EmailAttachment', + 'contentType' => 'type' => 'string', + 'body' => 'type' => 'container', 'class' => 'Syncroton_Model_EmailBody', + 'nativeBodyType' => 'type' => 'number', + , + 'Email' => + 'busyStatus' => 'type' => 'number', + 'categories' => 'type' => 'container', 'childElement' => 'category', 'supportedSince' => '14.0', + 'cc' => 'type' => 'string', + 'completeTime' => 'type' => 'datetime', + 'contentClass' => 'type' => 'string', + 'dateReceived' => 'type' => 'datetime', + 'disallowNewTimeProposal' => 'type' => 'number', + 'displayTo' => 'type' => 'string', + 'dTStamp' => 'type' => 'datetime', + 'endTime' => 'type' => 'datetime', + 'flag' => 'type' => 'container', 'class' => 'Syncroton_Model_EmailFlag', + 'from' => 'type' => 'string', + 'globalObjId' => 'type' => 'string', + 'importance' => 'type' => 'number', + 'instanceType' => 'type' => 'number', + 'internetCPID' => 'type' => 'string', + 'location' => 'type' => 'string', + 'meetingRequest' => 'type' => 'container', 'class' => 'Syncroton_Model_EmailMeetingRequest', + 'messageClass' => 'type' => 'string', + 'organizer' => 'type' => 'string', + 'read' => 'type' => 'number', + 'recurrences' => 'type' => 'container', + 'reminder' => 'type' => 'number', + 'replyTo' => 'type' => 'string', + 'responseRequested' => 'type' => 'number', + 'sensitivity' => 'type' => 'number', + 'startTime' => 'type' => 'datetime', + 'status' => 'type' => 'number', + 'subject' => 'type' => 'string', + 'threadTopic' => 'type' => 'string', + 'timeZone' => 'type' => 'timezone', + 'to' => 'type' => 'string', + , + 'Email2' => + 'accountId' => 'type' => 'string', 'supportedSince' => '14.1', + 'conversationId' => 'type' => 'byteArray', 'supportedSince' => '14.0', + 'conversationIndex' => 'type' => 'byteArray', 'supportedSince' => '14.0', + 'lastVerbExecuted' => 'type' => 'number', 'supportedSince' => '14.0', + 'lastVerbExecutionTime' => 'type' => 'datetime', 'supportedSince' => '14.0', + 'meetingMessageType' => 'type' => 'number', 'supportedSince' => '14.1', + 'receivedAsBcc' => 'type' => 'number', 'supportedSince' => '14.0', + 'sender' => 'type' => 'string', 'supportedSince' => '14.0', + 'umCallerID' => 'type' => 'string', 'supportedSince' => '14.0', + 'umUserNotes' => 'type' => 'string', 'supportedSince' => '14.0', + , + ; }
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Model/EmailAttachment.php
Changed
@@ -14,30 +14,30 @@ * * @package Syncroton * @subpackage Model - * @property string class - * @property string collectionId - * @property bool deletesAsMoves - * @property bool getChanges - * @property string syncKey - * @property int windowSize + * @property string $class + * @property string $collectionId + * @property bool $deletesAsMoves + * @property bool $getChanges + * @property string $syncKey + * @property int $windowSize */ class Syncroton_Model_EmailAttachment extends Syncroton_Model_AXMLEntry { protected $_xmlBaseElement = 'Attachment'; - - protected $_properties = array( - 'AirSyncBase' => array( - 'contentId' => array('type' => 'string'), - 'contentLocation' => array('type' => 'string'), - 'displayName' => array('type' => 'string'), - 'estimatedDataSize' => array('type' => 'string'), - 'fileReference' => array('type' => 'string'), - 'isInline' => array('type' => 'number'), - 'method' => array('type' => 'string'), - ), - 'Email2' => array( - 'umAttDuration' => array('type' => 'number', 'supportedSince' => '14.0'), - 'umAttOrder' => array('type' => 'number', 'supportedSince' => '14.0'), - ), - ); -} \ No newline at end of file + + protected $_properties = + 'AirSyncBase' => + 'contentId' => 'type' => 'string', + 'contentLocation' => 'type' => 'string', + 'displayName' => 'type' => 'string', + 'estimatedDataSize' => 'type' => 'string', + 'fileReference' => 'type' => 'string', + 'isInline' => 'type' => 'number', + 'method' => 'type' => 'string', + , + 'Email2' => + 'umAttDuration' => 'type' => 'number', 'supportedSince' => '14.0', + 'umAttOrder' => 'type' => 'number', 'supportedSince' => '14.0', + , + ; +}
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Model/EmailBody.php
Changed
@@ -14,31 +14,31 @@ * * @package Syncroton * @subpackage Model - * @property int EstimatedDataSize - * @property string Data - * @property string Part - * @property string Preview - * @property bool Truncated - * @property string Type + * @property int $estimatedDataSize + * @property string $data + * @property string $part + * @property string $preview + * @property bool $truncated + * @property string $type */ class Syncroton_Model_EmailBody extends Syncroton_Model_AXMLEntry { - const TYPE_PLAINTEXT = 1; - const TYPE_HTML = 2; - const TYPE_RTF = 3; - const TYPE_MIME = 4; - + public const TYPE_PLAINTEXT = 1; + public const TYPE_HTML = 2; + public const TYPE_RTF = 3; + public const TYPE_MIME = 4; + protected $_xmlBaseElement = 'Body'; - - protected $_properties = array( - 'AirSyncBase' => array( - 'type' => array('type' => 'string'), - 'estimatedDataSize' => array('type' => 'string'), - 'data' => array('type' => 'string'), - 'truncated' => array('type' => 'number'), - 'part' => array('type' => 'number'), - 'preview' => array('type' => 'string', 'supportedSince' => '14.0'), - ), - ); -} \ No newline at end of file + + protected $_properties = + 'AirSyncBase' => + 'type' => 'type' => 'string', + 'estimatedDataSize' => 'type' => 'string', + 'data' => 'type' => 'string', + 'truncated' => 'type' => 'number', + 'part' => 'type' => 'number', + 'preview' => 'type' => 'string', 'supportedSince' => '14.0', + , + ; +}
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Model/EmailFlag.php
Changed
@@ -16,45 +16,45 @@ * * @package Syncroton * @subpackage Model - * @property DateTime CompleteTime - * @property DateTime DateCompleted - * @property DateTime DueDate - * @property string FlagType - * @property DateTime OrdinalDate - * @property int ReminderSet - * @property DateTime ReminderTime - * @property DateTime StartDate - * @property string Status - * @property string Subject - * @property string SubOrdinalDate - * @property DateTime UtcDueDate - * @property DateTime UtcStartDate + * @property DateTime $completeTime + * @property DateTime $dateCompleted + * @property DateTime $dueDate + * @property string $flagType + * @property DateTime $ordinalDate + * @property int $reminderSet + * @property DateTime $reminderTime + * @property DateTime $startDate + * @property string $status + * @property string $subject + * @property string $subOrdinalDate + * @property DateTime $utcDueDate + * @property DateTime $utcStartDate */ class Syncroton_Model_EmailFlag extends Syncroton_Model_AXMLEntry { - const STATUS_CLEARED = 0; - const STATUS_COMPLETE = 1; - const STATUS_ACTIVE = 2; + public const STATUS_CLEARED = 0; + public const STATUS_COMPLETE = 1; + public const STATUS_ACTIVE = 2; protected $_xmlBaseElement = 'Flag'; - protected $_properties = array( - 'Email' => array( - 'completeTime' => array('type' => 'datetime'), - 'flagType' => array('type' => 'string'), - 'status' => array('type' => 'number'), - ), - 'Tasks' => array( - 'dateCompleted' => array('type' => 'datetime'), - 'dueDate' => array('type' => 'datetime'), - 'ordinalDate' => array('type' => 'datetime'), - 'reminderSet' => array('type' => 'number'), - 'reminderTime' => array('type' => 'datetime'), - 'startDate' => array('type' => 'datetime'), - 'subject' => array('type' => 'string'), - 'subOrdinalDate' => array('type' => 'string'), - 'utcStartDate' => array('type' => 'datetime'), - 'utcDueDate' => array('type' => 'datetime'), - ), - ); + protected $_properties = + 'Email' => + 'completeTime' => 'type' => 'datetime', + 'flagType' => 'type' => 'string', + 'status' => 'type' => 'number', + , + 'Tasks' => + 'dateCompleted' => 'type' => 'datetime', + 'dueDate' => 'type' => 'datetime', + 'ordinalDate' => 'type' => 'datetime', + 'reminderSet' => 'type' => 'number', + 'reminderTime' => 'type' => 'datetime', + 'startDate' => 'type' => 'datetime', + 'subject' => 'type' => 'string', + 'subOrdinalDate' => 'type' => 'string', + 'utcStartDate' => 'type' => 'datetime', + 'utcDueDate' => 'type' => 'datetime', + , + ; }
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Model/EmailMeetingRequest.php
Changed
@@ -14,83 +14,83 @@ * * @package Syncroton * @subpackage Model - * @property bool AllDayEvent - * @property int BusyStatus - * @property int DisallowNewTimeProposal - * @property DateTime DtStamp - * @property DateTime EndTime - * @property string GlobalObjId - * @property int InstanceType - * @property int MeetingMessageType - * @property string Organizer - * @property string RecurrenceId - * @property array Recurrences - * @property int Reminder - * @property int ResponseRequested - * @property int Sensitivity - * @property DateTime StartTime - * @property string Timezone + * @property bool $allDayEvent + * @property int $busyStatus + * @property int $disallowNewTimeProposal + * @property DateTime $dtStamp + * @property DateTime $endTime + * @property string $globalObjId + * @property int $instanceType + * @property int $meetingMessageType + * @property string $organizer + * @property string $recurrenceId + * @property array $recurrences + * @property int $reminder + * @property int $responseRequested + * @property int $sensitivity + * @property DateTime $startTime + * @property string $timezone */ class Syncroton_Model_EmailMeetingRequest extends Syncroton_Model_AXMLEntry { /** * busy status constants */ - const BUSY_STATUS_FREE = 0; - const BUSY_STATUS_TENATTIVE = 1; - const BUSY_STATUS_BUSY = 2; - const BUSY_STATUS_OUT = 3; + public const BUSY_STATUS_FREE = 0; + public const BUSY_STATUS_TENATTIVE = 1; + public const BUSY_STATUS_BUSY = 2; + public const BUSY_STATUS_OUT = 3; /** * sensitivity constants */ - const SENSITIVITY_NORMAL = 0; - const SENSITIVITY_PERSONAL = 1; - const SENSITIVITY_PRIVATE = 2; - const SENSITIVITY_CONFIDENTIAL = 3; + public const SENSITIVITY_NORMAL = 0; + public const SENSITIVITY_PERSONAL = 1; + public const SENSITIVITY_PRIVATE = 2; + public const SENSITIVITY_CONFIDENTIAL = 3; /** * instanceType constants */ - const TYPE_NORMAL = 0; - const TYPE_RECURRING_MASTER = 1; - const TYPE_RECURRING_SINGLE = 2; - const TYPE_RECURRING_EXCEPTION = 3; + public const TYPE_NORMAL = 0; + public const TYPE_RECURRING_MASTER = 1; + public const TYPE_RECURRING_SINGLE = 2; + public const TYPE_RECURRING_EXCEPTION = 3; /** * messageType constants */ - const MESSAGE_TYPE_NORMAL = 0; - const MESSAGE_TYPE_REQUEST = 1; - const MESSAGE_TYPE_FULL_UPDATE = 2; - const MESSAGE_TYPE_INFO_UPDATE = 3; - const MESSAGE_TYPE_OUTDATED = 4; - const MESSAGE_TYPE_COPY = 5; - const MESSAGE_TYPE_DELEGATED = 6; + public const MESSAGE_TYPE_NORMAL = 0; + public const MESSAGE_TYPE_REQUEST = 1; + public const MESSAGE_TYPE_FULL_UPDATE = 2; + public const MESSAGE_TYPE_INFO_UPDATE = 3; + public const MESSAGE_TYPE_OUTDATED = 4; + public const MESSAGE_TYPE_COPY = 5; + public const MESSAGE_TYPE_DELEGATED = 6; protected $_xmlBaseElement = 'MeetingRequest'; - protected $_properties = array( - 'Email' => array( - 'allDayEvent' => array('type' => 'number'), - 'busyStatus' => array('type' => 'number'), - 'disallowNewTimeProposal' => array('type' => 'number'), - 'dtStamp' => array('type' => 'datetime'), - 'endTime' => array('type' => 'datetime'), - 'globalObjId' => array('type' => 'string'), - 'instanceType' => array('type' => 'number'), - 'location' => array('type' => 'string'), - 'organizer' => array('type' => 'string'), //e-mail address - 'recurrenceId' => array('type' => 'datetime'), - 'recurrences' => array('type' => 'container'), - 'reminder' => array('type' => 'number'), - 'responseRequested' => array('type' => 'number'), - 'sensitivity' => array('type' => 'number'), - 'startTime' => array('type' => 'datetime'), - 'timeZone' => array('type' => 'timezone'), - ), - 'Email2' => array( - 'meetingMessageType' => array('type' => 'number'), - ), - ); + protected $_properties = + 'Email' => + 'allDayEvent' => 'type' => 'number', + 'busyStatus' => 'type' => 'number', + 'disallowNewTimeProposal' => 'type' => 'number', + 'dtStamp' => 'type' => 'datetime', + 'endTime' => 'type' => 'datetime', + 'globalObjId' => 'type' => 'string', + 'instanceType' => 'type' => 'number', + 'location' => 'type' => 'string', + 'organizer' => 'type' => 'string', //e-mail address + 'recurrenceId' => 'type' => 'datetime', + 'recurrences' => 'type' => 'container', + 'reminder' => 'type' => 'number', + 'responseRequested' => 'type' => 'number', + 'sensitivity' => 'type' => 'number', + 'startTime' => 'type' => 'datetime', + 'timeZone' => 'type' => 'timezone', + , + 'Email2' => + 'meetingMessageType' => 'type' => 'number', + , + ; }
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Model/EmailRecurrence.php
Changed
@@ -14,19 +14,18 @@ * * @package Syncroton * @subpackage Model - * @property int CalendarType - * @property int DayOfMonth - * @property int DayOfWeek - * @property int FirstDayOfWeek - * @property int Interval - * @property int IsLeapMonth - * @property int MonthOfYear - * @property int Occurrences - * @property int Type - * @property DateTime Until - * @property int WeekOfMonth + * @property int $calendarType + * @property int $dayOfMonth + * @property int $dayOfWeek + * @property int $firstDayOfWeek + * @property int $interval + * @property int $isLeapMonth + * @property int $monthOfYear + * @property int $occurrences + * @property int $type + * @property DateTime $until + * @property int $weekOfMonth */ - class Syncroton_Model_EmailRecurrence extends Syncroton_Model_AXMLEntry { protected $_xmlBaseElement = 'Recurrence'; @@ -34,41 +33,41 @@ /** * recur types */ - const TYPE_DAILY = 0; // Recurs daily - const TYPE_WEEKLY = 1; // Recurs weekly - const TYPE_MONTHLY = 3; // Recurs monthly - const TYPE_MONTHLY_DAYN = 2; // Recurs monthly on the nth day - const TYPE_YEARLY = 5; // Recurs yearly on the nth day of the nth month each year - const TYPE_YEARLY_DAYN = 6; // Recurs yearly on the nth day of the week of the nth month + public const TYPE_DAILY = 0; // Recurs daily + public const TYPE_WEEKLY = 1; // Recurs weekly + public const TYPE_MONTHLY = 3; // Recurs monthly + public const TYPE_MONTHLY_DAYN = 2; // Recurs monthly on the nth day + public const TYPE_YEARLY = 5; // Recurs yearly on the nth day of the nth month each year + public const TYPE_YEARLY_DAYN = 6; // Recurs yearly on the nth day of the week of the nth month /** * day of week constants */ - const RECUR_DOW_SUNDAY = 1; - const RECUR_DOW_MONDAY = 2; - const RECUR_DOW_TUESDAY = 4; - const RECUR_DOW_WEDNESDAY = 8; - const RECUR_DOW_THURSDAY = 16; - const RECUR_DOW_FRIDAY = 32; - const RECUR_DOW_SATURDAY = 64; + public const RECUR_DOW_SUNDAY = 1; + public const RECUR_DOW_MONDAY = 2; + public const RECUR_DOW_TUESDAY = 4; + public const RECUR_DOW_WEDNESDAY = 8; + public const RECUR_DOW_THURSDAY = 16; + public const RECUR_DOW_FRIDAY = 32; + public const RECUR_DOW_SATURDAY = 64; protected $_dateTimeFormat = "Ymd\THis\Z"; - protected $_properties = array( - 'Email' => array( - 'dayOfMonth' => array('type' => 'number'), - 'dayOfWeek' => array('type' => 'number'), - 'interval' => array('type' => 'number'), // 1 or 2 - 'monthOfYear' => array('type' => 'number'), - 'occurrences' => array('type' => 'number'), - 'type' => array('type' => 'number'), - 'until' => array('type' => 'datetime'), - 'weekOfMonth' => array('type' => 'number'), - ), - 'Email2' => array( - 'calendarType' => array('type' => 'number'), - 'firstDayOfWeek' => array('type' => 'number'), - 'isLeapMonth' => array('type' => 'number'), - ) - ); + protected $_properties = + 'Email' => + 'dayOfMonth' => 'type' => 'number', + 'dayOfWeek' => 'type' => 'number', + 'interval' => 'type' => 'number', // 1 or 2 + 'monthOfYear' => 'type' => 'number', + 'occurrences' => 'type' => 'number', + 'type' => 'type' => 'number', + 'until' => 'type' => 'datetime', + 'weekOfMonth' => 'type' => 'number', + , + 'Email2' => + 'calendarType' => 'type' => 'number', + 'firstDayOfWeek' => 'type' => 'number', + 'isLeapMonth' => 'type' => 'number', + , + ; }
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Model/Event.php
Changed
@@ -14,59 +14,62 @@ * * @package Syncroton * @subpackage Model - * @property string class - * @property string collectionId - * @property bool deletesAsMoves - * @property bool getChanges - * @property string syncKey - * @property int windowSize + * + * @property bool $allDayEvent + * @property string $class + * @property string $collectionId + * @property bool $deletesAsMoves + * @property DateTime $endTime + * @property bool $getChanges + * @property DateTime $startTime + * @property string $syncKey + * @property int $windowSize */ - class Syncroton_Model_Event extends Syncroton_Model_AXMLEntry { - /** - * busy status constants - */ - const BUSY_STATUS_FREE = 0; - const BUSY_STATUS_TENATTIVE = 1; - const BUSY_STATUS_BUSY = 2; - - protected $_dateTimeFormat = "Ymd\THis\Z"; - + /** + * busy status constants + */ + public const BUSY_STATUS_FREE = 0; + public const BUSY_STATUS_TENATTIVE = 1; + public const BUSY_STATUS_BUSY = 2; + + protected $_dateTimeFormat = "Ymd\THis\Z"; + protected $_xmlBaseElement = 'ApplicationData'; - - protected $_properties = array( - 'AirSyncBase' => array( - 'body' => array('type' => 'container', 'class' => 'Syncroton_Model_EmailBody') - ), - 'Calendar' => array( - 'allDayEvent' => array('type' => 'number'), - 'appointmentReplyTime' => array('type' => 'datetime'), - 'attendees' => array('type' => 'container', 'childElement' => 'attendee', 'class' => 'Syncroton_Model_EventAttendee'), - 'busyStatus' => array('type' => 'number'), - 'categories' => array('type' => 'container', 'childElement' => 'category'), - 'disallowNewTimeProposal' => array('type' => 'number'), - 'dtStamp' => array('type' => 'datetime'), - 'endTime' => array('type' => 'datetime'), - 'exceptions' => array('type' => 'container', 'childElement' => 'exception', 'class' => 'Syncroton_Model_EventException'), - 'location' => array('type' => 'string'), - 'meetingStatus' => array('type' => 'number'), - 'onlineMeetingConfLink' => array('type' => 'string'), - 'onlineMeetingExternalLink' => array('type' => 'string'), - 'organizerEmail' => array('type' => 'string'), - 'organizerName' => array('type' => 'string'), - 'recurrence' => array('type' => 'container'), - 'reminder' => array('type' => 'number'), - 'responseRequested' => array('type' => 'number'), - 'responseType' => array('type' => 'number'), - 'sensitivity' => array('type' => 'number'), - 'startTime' => array('type' => 'datetime'), - 'subject' => array('type' => 'string'), - 'timezone' => array('type' => 'timezone'), - 'uID' => array('type' => 'string'), - ) - ); - + + protected $_properties = + 'AirSyncBase' => + 'body' => 'type' => 'container', 'class' => 'Syncroton_Model_EmailBody', + , + 'Calendar' => + 'allDayEvent' => 'type' => 'number', + 'appointmentReplyTime' => 'type' => 'datetime', + 'attendees' => 'type' => 'container', 'childElement' => 'attendee', 'class' => 'Syncroton_Model_EventAttendee', + 'busyStatus' => 'type' => 'number', + 'categories' => 'type' => 'container', 'childElement' => 'category', + 'disallowNewTimeProposal' => 'type' => 'number', + 'dtStamp' => 'type' => 'datetime', + 'endTime' => 'type' => 'datetime', + 'exceptions' => 'type' => 'container', 'childElement' => 'exception', 'class' => 'Syncroton_Model_EventException', + 'location' => 'type' => 'string', + 'meetingStatus' => 'type' => 'number', + 'onlineMeetingConfLink' => 'type' => 'string', + 'onlineMeetingExternalLink' => 'type' => 'string', + 'organizerEmail' => 'type' => 'string', + 'organizerName' => 'type' => 'string', + 'recurrence' => 'type' => 'container', + 'reminder' => 'type' => 'number', + 'responseRequested' => 'type' => 'number', + 'responseType' => 'type' => 'number', + 'sensitivity' => 'type' => 'number', + 'startTime' => 'type' => 'datetime', + 'subject' => 'type' => 'string', + 'timezone' => 'type' => 'timezone', + 'uID' => 'type' => 'string', + , + ; + /** * (non-PHPdoc) * @see Syncroton_Model_IEntry::appendXML() @@ -77,7 +80,7 @@ parent::appendXML($domParrent, $device); $exceptionElements = $domParrent->getElementsByTagName('Exception'); - $parentFields = array('AllDayEvent'/*, 'Attendees'*/, 'Body', 'BusyStatus'/*, 'Categories'*/, 'DtStamp', 'EndTime', 'Location', 'MeetingStatus', 'Reminder', 'ResponseType', 'Sensitivity', 'StartTime', 'Subject'); + $parentFields = 'AllDayEvent'/*, 'Attendees'*/, 'Body', 'BusyStatus'/*, 'Categories'*/, 'DtStamp', 'EndTime', 'Location', 'MeetingStatus', 'Reminder', 'ResponseType', 'Sensitivity', 'StartTime', 'Subject'; if ($exceptionElements->length > 0) { $mainEventElement = $exceptionElements->item(0)->parentNode->parentNode; @@ -97,31 +100,31 @@ } } } - + /** - * some elements of an exception can be left out, if they have the same value + * some elements of an exception can be left out, if they have the same value * like the main event - * + * * this function copies these elements to the exception for backends which need * this elements in the exceptions too. Tine 2.0 needs this for example. */ public function copyFieldsFromParent() { - if (isset($this->_elements'exceptions') && is_array($this->_elements'exceptions')) { - foreach ($this->_elements'exceptions' as $exception) { - // no need to update deleted exceptions - if ($exception->deleted == 1) { - continue; - } - - $parentFields = array('allDayEvent', 'attendees', 'body', 'busyStatus', 'categories', 'dtStamp', 'endTime', 'location', 'meetingStatus', 'reminder', 'responseType', 'sensitivity', 'startTime', 'subject'); - - foreach ($parentFields as $field) { - if (!isset($exception->$field) && isset($this->_elements$field)) { - $exception->$field = $this->_elements$field; - } - } - } - } + if (isset($this->_elements'exceptions') && is_array($this->_elements'exceptions')) { + foreach ($this->_elements'exceptions' as $exception) { + // no need to update deleted exceptions + if ($exception->deleted == 1) { + continue; + } + + $parentFields = 'allDayEvent', 'attendees', 'body', 'busyStatus', 'categories', 'dtStamp', 'endTime', 'location', 'meetingStatus', 'reminder', 'responseType', 'sensitivity', 'startTime', 'subject'; + + foreach ($parentFields as $field) { + if (!isset($exception->$field) && isset($this->_elements$field)) { + $exception->$field = $this->_elements$field; + } + } + } + } } -} \ No newline at end of file +}
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Model/EventAttendee.php
Changed
@@ -14,40 +14,39 @@ * * @package Syncroton * @subpackage Model - * @property string class - * @property string collectionId - * @property bool deletesAsMoves - * @property bool getChanges - * @property string syncKey - * @property int windowSize + * @property string $class + * @property string $collectionId + * @property bool $deletesAsMoves + * @property bool $getChanges + * @property string $syncKey + * @property int $windowSize */ - class Syncroton_Model_EventAttendee extends Syncroton_Model_AXMLEntry { protected $_xmlBaseElement = 'Attendee'; - - /** - * attendee status - */ - const ATTENDEE_STATUS_UNKNOWN = 0; - const ATTENDEE_STATUS_TENTATIVE = 2; - const ATTENDEE_STATUS_ACCEPTED = 3; - const ATTENDEE_STATUS_DECLINED = 4; - const ATTENDEE_STATUS_NOTRESPONDED = 5; - - /** - * attendee types - */ - const ATTENDEE_TYPE_REQUIRED = 1; - const ATTENDEE_TYPE_OPTIONAL = 2; - const ATTENDEE_TYPE_RESOURCE = 3; - - protected $_properties = array( - 'Calendar' => array( - 'attendeeStatus' => array('type' => 'number'), - 'attendeeType' => array('type' => 'number'), - 'email' => array('type' => 'string'), - 'name' => array('type' => 'string'), - ) - ); -} \ No newline at end of file + + /** + * attendee status + */ + public const ATTENDEE_STATUS_UNKNOWN = 0; + public const ATTENDEE_STATUS_TENTATIVE = 2; + public const ATTENDEE_STATUS_ACCEPTED = 3; + public const ATTENDEE_STATUS_DECLINED = 4; + public const ATTENDEE_STATUS_NOTRESPONDED = 5; + + /** + * attendee types + */ + public const ATTENDEE_TYPE_REQUIRED = 1; + public const ATTENDEE_TYPE_OPTIONAL = 2; + public const ATTENDEE_TYPE_RESOURCE = 3; + + protected $_properties = + 'Calendar' => + 'attendeeStatus' => 'type' => 'number', + 'attendeeType' => 'type' => 'number', + 'email' => 'type' => 'string', + 'name' => 'type' => 'string', + , + ; +}
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Model/EventException.php
Changed
@@ -14,41 +14,44 @@ * * @package Syncroton * @subpackage Model - * @property string class - * @property string collectionId - * @property bool deletesAsMoves - * @property bool getChanges - * @property string syncKey - * @property int windowSize + * + * @property bool $allDayEvent + * @property string $class + * @property string $collectionId + * @property bool $deletesAsMoves + * @property DateTime $endTime + * @property bool $getChanges + * @property DateTime $startTime + * @property string $syncKey + * @property int $windowSize */ - class Syncroton_Model_EventException extends Syncroton_Model_AXMLEntry -{ +{ protected $_xmlBaseElement = 'Exception'; - + protected $_dateTimeFormat = "Ymd\THis\Z"; - - protected $_properties = array( - 'AirSyncBase' => array( - 'body' => array('type' => 'container', 'class' => 'Syncroton_Model_EmailBody') - ), - 'Calendar' => array( - 'allDayEvent' => array('type' => 'number'), - 'appointmentReplyTime' => array('type' => 'datetime'), - 'attendees' => array('type' => 'container', 'childElement' => 'attendee', 'class' => 'Syncroton_Model_EventAttendee'), - 'busyStatus' => array('type' => 'number'), - 'categories' => array('type' => 'container', 'childElement' => 'category'), - 'deleted' => array('type' => 'number'), - 'dtStamp' => array('type' => 'datetime'), - 'endTime' => array('type' => 'datetime'), - 'exceptionStartTime' => array('type' => 'datetime'), - 'location' => array('type' => 'string'), - 'meetingStatus' => array('type' => 'number'), - 'reminder' => array('type' => 'number'), - 'responseType' => array('type' => 'number'), - 'sensitivity' => array('type' => 'number'), - 'startTime' => array('type' => 'datetime'), - 'subject' => array('type' => 'string'), - ) - ); -} \ No newline at end of file + + protected $_properties = + 'AirSyncBase' => + 'body' => 'type' => 'container', 'class' => 'Syncroton_Model_EmailBody', + , + 'Calendar' => + 'allDayEvent' => 'type' => 'number', + 'appointmentReplyTime' => 'type' => 'datetime', + 'attendees' => 'type' => 'container', 'childElement' => 'attendee', 'class' => 'Syncroton_Model_EventAttendee', + 'busyStatus' => 'type' => 'number', + 'categories' => 'type' => 'container', 'childElement' => 'category', + 'deleted' => 'type' => 'number', + 'dtStamp' => 'type' => 'datetime', + 'endTime' => 'type' => 'datetime', + 'exceptionStartTime' => 'type' => 'datetime', + 'location' => 'type' => 'string', + 'meetingStatus' => 'type' => 'number', + 'reminder' => 'type' => 'number', + 'responseType' => 'type' => 'number', + 'sensitivity' => 'type' => 'number', + 'startTime' => 'type' => 'datetime', + 'subject' => 'type' => 'string', + , + ; +}
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Model/EventRecurrence.php
Changed
@@ -14,59 +14,58 @@ * * @package Syncroton * @subpackage Model - * @property int CalendarType - * @property int DayOfMonth - * @property int DayOfWeek - * @property int FirstDayOfWeek - * @property int Interval - * @property int IsLeapMonth - * @property int MonthOfYear - * @property int Occurrences - * @property int Type - * @property DateTime Until - * @property int WeekOfMonth + * @property int $calendarType + * @property int $dayOfMonth + * @property int $dayOfWeek + * @property int $firstDayOfWeek + * @property int $interval + * @property int $isLeapMonth + * @property int $monthOfYear + * @property int $occurrences + * @property int $type + * @property DateTime $until + * @property int $weekOfMonth */ - class Syncroton_Model_EventRecurrence extends Syncroton_Model_AXMLEntry { protected $_xmlBaseElement = 'Recurrence'; - - /** - * recur types - */ - const TYPE_DAILY = 0; // Recurs daily. - const TYPE_WEEKLY = 1; // Recurs weekly - const TYPE_MONTHLY = 2; // Recurs monthly - const TYPE_MONTHLY_DAYN = 3; // Recurs monthly on the nth day - const TYPE_YEARLY = 5; // Recurs yearly - const TYPE_YEARLY_DAYN = 6; // Recurs yearly on the nth day - - /** - * day of week constants - */ - const RECUR_DOW_SUNDAY = 1; - const RECUR_DOW_MONDAY = 2; - const RECUR_DOW_TUESDAY = 4; - const RECUR_DOW_WEDNESDAY = 8; - const RECUR_DOW_THURSDAY = 16; - const RECUR_DOW_FRIDAY = 32; - const RECUR_DOW_SATURDAY = 64; - + + /** + * recur types + */ + public const TYPE_DAILY = 0; // Recurs daily. + public const TYPE_WEEKLY = 1; // Recurs weekly + public const TYPE_MONTHLY = 2; // Recurs monthly + public const TYPE_MONTHLY_DAYN = 3; // Recurs monthly on the nth day + public const TYPE_YEARLY = 5; // Recurs yearly + public const TYPE_YEARLY_DAYN = 6; // Recurs yearly on the nth day + + /** + * day of week constants + */ + public const RECUR_DOW_SUNDAY = 1; + public const RECUR_DOW_MONDAY = 2; + public const RECUR_DOW_TUESDAY = 4; + public const RECUR_DOW_WEDNESDAY = 8; + public const RECUR_DOW_THURSDAY = 16; + public const RECUR_DOW_FRIDAY = 32; + public const RECUR_DOW_SATURDAY = 64; + protected $_dateTimeFormat = "Ymd\THis\Z"; - - protected $_properties = array( - 'Calendar' => array( - 'calendarType' => array('type' => 'number'), - 'dayOfMonth' => array('type' => 'number'), - 'dayOfWeek' => array('type' => 'number'), - 'firstDayOfWeek' => array('type' => 'number'), - 'interval' => array('type' => 'number'), - 'isLeapMonth' => array('type' => 'number'), - 'monthOfYear' => array('type' => 'number'), - 'occurrences' => array('type' => 'number'), - 'type' => array('type' => 'number'), - 'until' => array('type' => 'datetime'), - 'weekOfMonth' => array('type' => 'number'), - ) - ); -} \ No newline at end of file + + protected $_properties = + 'Calendar' => + 'calendarType' => 'type' => 'number', + 'dayOfMonth' => 'type' => 'number', + 'dayOfWeek' => 'type' => 'number', + 'firstDayOfWeek' => 'type' => 'number', + 'interval' => 'type' => 'number', + 'isLeapMonth' => 'type' => 'number', + 'monthOfYear' => 'type' => 'number', + 'occurrences' => 'type' => 'number', + 'type' => 'type' => 'number', + 'until' => 'type' => 'datetime', + 'weekOfMonth' => 'type' => 'number', + , + ; +}
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Model/FileReference.php
Changed
@@ -14,33 +14,32 @@ * * @package Syncroton * @subpackage Model - * @property string ContentType - * @property string Data + * @property string $contentType + * @property string $data + * @property int $part */ - class Syncroton_Model_FileReference extends Syncroton_Model_AXMLEntry { protected $_xmlBaseElement = 'ApplicationData'; - - protected $_properties = array( - 'AirSyncBase' => array( - 'contentType' => array('type' => 'string'), - ), - 'ItemOperations' => array( - 'data' => array('type' => 'string', 'encoding' => 'base64'), - 'part' => array('type' => 'number') - ) - ); - + + protected $_properties = + 'AirSyncBase' => + 'contentType' => 'type' => 'string', + , + 'ItemOperations' => + 'data' => 'type' => 'string', 'encoding' => 'base64', + 'part' => 'type' => 'number', + , + ; + /** - * - * @param SimpleXMLElement $xmlCollection + * + * @param SimpleXMLElement $properties * @throws InvalidArgumentException */ public function setFromSimpleXMLElement(SimpleXMLElement $properties) { - //do nothing - + // do nothing return; } -} \ No newline at end of file +}
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Model/Folder.php
Changed
@@ -18,22 +18,22 @@ */ class Syncroton_Model_Folder extends Syncroton_Model_AXMLEntry implements Syncroton_Model_IFolder { - protected $_xmlBaseElement = array('FolderUpdate', 'FolderCreate'); - - protected $_properties = array( - 'FolderHierarchy' => array( - 'parentId' => array('type' => 'string'), - 'serverId' => array('type' => 'string'), - 'displayName' => array('type' => 'string'), - 'type' => array('type' => 'number') - ), - 'Internal' => array( - 'id' => array('type' => 'string'), - 'deviceId' => array('type' => 'string'), - 'ownerId' => array('type' => 'string'), - 'class' => array('type' => 'string'), - 'creationTime' => array('type' => 'datetime'), - 'lastfiltertype' => array('type' => 'number') - ), - ); + protected $_xmlBaseElement = 'FolderUpdate', 'FolderCreate'; + + protected $_properties = + 'FolderHierarchy' => + 'parentId' => 'type' => 'string', + 'serverId' => 'type' => 'string', + 'displayName' => 'type' => 'string', + 'type' => 'type' => 'number', + , + 'Internal' => + 'id' => 'type' => 'string', + 'deviceId' => 'type' => 'string', + 'ownerId' => 'type' => 'string', + 'class' => 'type' => 'string', + 'creationTime' => 'type' => 'datetime', + 'lastfiltertype' => 'type' => 'number', + , + ; }
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Model/GAL.php
Changed
@@ -17,35 +17,35 @@ * @package Syncroton * @subpackage Model * - * @property string Alias - * @property string Company - * @property string DisplayName - * @property string EmailAddress - * @property string FirstName - * @property string LastName - * @property string MobilePhone - * @property string Office - * @property string Phone - * @property string Picture - * @property string Title + * @property string $alias + * @property string $company + * @property string $displayName + * @property string $emailAddress + * @property string $firstName + * @property string $lastName + * @property string $mobilePhone + * @property string $office + * @property string $phone + * @property string $picture + * @property string $title */ class Syncroton_Model_GAL extends Syncroton_Model_AXMLEntry { protected $_xmlBaseElement = 'ApplicationData'; - protected $_properties = array( - 'GAL' => array( - 'alias' => array('type' => 'string', 'supportedSince' => '2.5'), - 'company' => array('type' => 'string', 'supportedSince' => '2.5'), - 'displayName' => array('type' => 'string', 'supportedSince' => '2.5'), - 'emailAddress' => array('type' => 'string', 'supportedSince' => '2.5'), - 'firstName' => array('type' => 'string', 'supportedSince' => '2.5'), - 'lastName' => array('type' => 'string', 'supportedSince' => '2.5'), - 'mobilePhone' => array('type' => 'string', 'supportedSince' => '2.5'), - 'office' => array('type' => 'string', 'supportedSince' => '2.5'), - 'phone' => array('type' => 'string', 'supportedSince' => '2.5'), - 'picture' => array('type' => 'container', 'supportedSince' => '14.0'), - 'title' => array('type' => 'string', 'supportedSince' => '2.5'), - ) - ); + protected $_properties = + 'GAL' => + 'alias' => 'type' => 'string', 'supportedSince' => '2.5', + 'company' => 'type' => 'string', 'supportedSince' => '2.5', + 'displayName' => 'type' => 'string', 'supportedSince' => '2.5', + 'emailAddress' => 'type' => 'string', 'supportedSince' => '2.5', + 'firstName' => 'type' => 'string', 'supportedSince' => '2.5', + 'lastName' => 'type' => 'string', 'supportedSince' => '2.5', + 'mobilePhone' => 'type' => 'string', 'supportedSince' => '2.5', + 'office' => 'type' => 'string', 'supportedSince' => '2.5', + 'phone' => 'type' => 'string', 'supportedSince' => '2.5', + 'picture' => 'type' => 'container', 'supportedSince' => '14.0', + 'title' => 'type' => 'string', 'supportedSince' => '2.5', + , + ; }
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Model/GALPicture.php
Changed
@@ -17,24 +17,24 @@ * @package Syncroton * @subpackage Model * - * @property string Status - * @property string Data + * @property string $status + * @property string $data */ class Syncroton_Model_GALPicture extends Syncroton_Model_AXMLEntry { - const STATUS_SUCCESS = 1; - const STATUS_NOPHOTO = 173; - const STATUS_TOOLARGE = 174; - const STATUS_OVERLIMIT = 175; + public const STATUS_SUCCESS = 1; + public const STATUS_NOPHOTO = 173; + public const STATUS_TOOLARGE = 174; + public const STATUS_OVERLIMIT = 175; protected $_xmlBaseElement = 'ApplicationData'; - protected $_properties = array( - 'AirSync' => array( - 'status' => array('type' => 'number'), - ), - 'GAL' => array( - 'data' => array('type' => 'byteArray'), - ), - ); + protected $_properties = + 'AirSync' => + 'status' => 'type' => 'number', + , + 'GAL' => + 'data' => 'type' => 'byteArray', + , + ; }
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Model/IContent.php
Changed
@@ -14,15 +14,14 @@ * * @package Syncroton * @subpackage Model - * @property string id - * @property string device_id - * @property string folder_id - * @property string contentid - * @property DateTime creation_time - * @property string creation_synckey - * @property string is_deleted + * @property string $id + * @property string $device_id + * @property string $folder_id + * @property string $contentid + * @property DateTime $creation_time + * @property string $creation_synckey + * @property string $is_deleted */ interface Syncroton_Model_IContent { } -
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Model/IDevice.php
Changed
@@ -1,12 +1,13 @@ <?php + /** * Syncroton * * @package Syncroton * @subpackage Model * @license http://www.tine20.org/licenses/lgpl.html LGPL Version 3 - * @copyright Copyright (c) 2009-2012 Metaways Infosystems GmbH (http://www.metaways.de) - * @author Lars Kneschke <l.kneschke@metaways.de> + * @copyright Copyright (c) 2012-2014 Kolab Systems AG + * @author Aleksander Machniak <machniak@kolabsys.com> */ /** @@ -14,31 +15,29 @@ * * @package Syncroton * @subpackage Model - * @property string id - * @property string deviceid - * @property string devicetype - * @property string policykey - * @property string policyId - * @property string ownerId - * @property string acsversion - * @property string pingfolder - * @property string pinglifetime - * @property string remotewipe - * @property string useragent - * @property string imei - * @property string model - * @property string friendlyname - * @property string os - * @property string oslanguage - * @property string phonenumber - * @property string pinglifetime - * @property string pingfolder - * @property string contactsfilter_id - * @property string calendarfilter_id - * @property string tasksfilter_id - * @property string emailfilter_id - * @property string lastsynccollection - * @property DateTime lastping + * @property string $acsversion + * @property string $deviceid + * @property string $devicetype + * @property string $friendlyname + * @property string $id + * @property string $imei + * @property string $model + * @property string $os + * @property string $oslanguage + * @property string $ownerId + * @property string $phonenumber + * @property string $pingfolder + * @property int $pinglifetime + * @property string $policykey + * @property string $policyId + * @property int $remotewipe + * @property string $useragent + * @property string $contactsfilter_id + * @property string $calendarfilter_id + * @property string $tasksfilter_id + * @property string $emailfilter_id + * @property string $lastsynccollection + * @property DateTime $lastping */ interface Syncroton_Model_IDevice extends Syncroton_Model_IEntry { @@ -49,4 +48,3 @@ */ public function getMajorVersion(); } -
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Model/IEntry.php
Changed
@@ -1,5 +1,5 @@ <?php -/** +/* * Syncroton * * @package Syncroton @@ -10,33 +10,33 @@ */ /** - * class to handle ActiveSync contact + * class to handle ActiveSync entry * * @package Syncroton * @subpackage Model - * @property string class - * @property string collectionId - * @property bool deletesAsMoves - * @property bool getChanges - * @property string syncKey - * @property int windowSize + * @property string $class + * @property string $collectionId + * @property bool $deletesAsMoves + * @property bool $getChanges + * @property string $syncKey + * @property int $windowSize */ interface Syncroton_Model_IEntry { /** - * - * @param unknown_type $properties + * + * @param SimpleXMLElement|array|null $properties */ public function __construct($properties = null); - + /** * return true if data have got changed after initial data got loaded via constructor */ public function isDirty(); - + /** - * + * * @param array $properties - */ - public function setFromArray(array $properties); -} \ No newline at end of file + */ + public function setFromArray(array $properties); +}
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Model/IFolder.php
Changed
@@ -14,17 +14,16 @@ * * @package Syncroton * @subpackage Model - * @property string id - * @property string deviceId - * @property string class - * @property string serverId - * @property string parentId - * @property string displayName - * @property string creationTime - * @property string lastfiltertype - * @property string type + * @property string $id + * @property string $deviceId + * @property string $class + * @property string $serverId + * @property string $parentId + * @property string $displayName + * @property DateTime $creationTime + * @property int $lastfiltertype + * @property int $type */ interface Syncroton_Model_IFolder { } -
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Model/IPolicy.php
Changed
@@ -14,19 +14,18 @@ * * @package Syncroton * @subpackage Model - * @property string id - * @property string deviceid - * @property string devicetype - * @property string policyKey - * @property string policyId - * @property string ownerId - * @property string acsversion - * @property string pingfolder - * @property string pinglifetime - * @property string remotewipe - * @property string useragent + * @property string $id + * @property string $deviceid + * @property string $devicetype + * @property string $policyKey + * @property string $policyId + * @property string $ownerId + * @property string $acsversion + * @property string $pingfolder + * @property string $pinglifetime + * @property string $remotewipe + * @property string $useragent */ interface Syncroton_Model_IPolicy { } -
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Model/ISyncState.php
Changed
@@ -14,15 +14,15 @@ * * @package Syncroton * @subpackage Model - * @property string device_id - * @property string type - * @property string counter - * @property DateTime lastsync - * @property string pendingdata - * @property string client_id_map - * @property string extraData + * @property string $deviceId + * @property string $type + * @property int $counter + * @property DateTime $lastsync + * @property string $id + * @property ?array $pendingdata + * @property string $clientIdMap JSON-encoded array + * @property string $extraData JSON-encoded array */ interface Syncroton_Model_ISyncState { } -
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Model/IXMLEntry.php
Changed
@@ -18,23 +18,23 @@ interface Syncroton_Model_IXMLEntry extends Syncroton_Model_IEntry { /** - * - * @param DOMElement $_domParrent + * + * @param DOMElement $_domParent * @param Syncroton_Model_IDevice $device */ - public function appendXML(DOMElement $_domParrent, Syncroton_Model_IDevice $device); - + public function appendXML(DOMElement $_domParent, Syncroton_Model_IDevice $device); + /** * return array of valid properties - * + * * @return array */ - public function getProperties(); - + public function getProperties($selectedNamespace = null); + /** - * - * @param SimpleXMLElement $xmlCollection + * + * @param SimpleXMLElement $properties * @throws InvalidArgumentException */ public function setFromSimpleXMLElement(SimpleXMLElement $properties); -} \ No newline at end of file +}
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Model/MeetingResponse.php
Changed
@@ -14,34 +14,34 @@ * * @package Syncroton * @subpackage Model - * @property int userResponse - * @property string collectionId - * @property string calendarId - * @property string requestId - * @property string instanceId - * @property string longId + * @property int $userResponse + * @property string $collectionId + * @property string $calendarId + * @property string $requestId + * @property string $instanceId + * @property string $longId */ class Syncroton_Model_MeetingResponse extends Syncroton_Model_AXMLEntry { protected $_xmlBaseElement = 'Request'; - - /** - * attendee status - */ - const RESPONSE_ACCEPTED = 1; - const RESPONSE_TENTATIVE = 2; - const RESPONSE_DECLINED = 3; - - protected $_properties = array( - 'MeetingResponse' => array( - 'userResponse' => array('type' => 'number'), - 'collectionId' => array('type' => 'string'), - 'calendarId' => array('type' => 'string'), - 'requestId' => array('type' => 'string'), - 'instanceId' => array('type' => 'datetime'), - ), - 'Search' => array( - 'longId' => array('type' => 'string') - ) - ); -} \ No newline at end of file + + /** + * attendee status + */ + public const RESPONSE_ACCEPTED = 1; + public const RESPONSE_TENTATIVE = 2; + public const RESPONSE_DECLINED = 3; + + protected $_properties = + 'MeetingResponse' => + 'userResponse' => 'type' => 'number', + 'collectionId' => 'type' => 'string', + 'calendarId' => 'type' => 'string', + 'requestId' => 'type' => 'string', + 'instanceId' => 'type' => 'datetime', + , + 'Search' => + 'longId' => 'type' => 'string', + , + ; +}
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Model/Note.php
Changed
@@ -14,25 +14,25 @@ * * @package Syncroton * @subpackage Model - * @property Syncroton_Model_EmailBody body - * @property array categories - * @property DateTime lastModifiedDate - * @property string messageClass - * @property string subject + * @property Syncroton_Model_EmailBody $body + * @property array $categories + * @property DateTime $lastModifiedDate + * @property string $messageClass + * @property string $subject */ class Syncroton_Model_Note extends Syncroton_Model_AXMLEntry { protected $_xmlBaseElement = 'ApplicationData'; - protected $_properties = array( - 'AirSyncBase' => array( - 'body' => array('type' => 'container', 'class' => 'Syncroton_Model_EmailBody') - ), - 'Notes' => array( - 'categories' => array('type' => 'container', 'childElement' => 'category'), - 'lastModifiedDate' => array('type' => 'datetime'), - 'messageClass' => array('type' => 'string'), - 'subject' => array('type' => 'string'), - ) - ); -} \ No newline at end of file + protected $_properties = + 'AirSyncBase' => + 'body' => 'type' => 'container', 'class' => 'Syncroton_Model_EmailBody', + , + 'Notes' => + 'categories' => 'type' => 'container', 'childElement' => 'category', + 'lastModifiedDate' => 'type' => 'datetime', + 'messageClass' => 'type' => 'string', + 'subject' => 'type' => 'string', + , + ; +}
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Model/Oof.php
Changed
@@ -15,21 +15,26 @@ * * @package Syncroton * @subpackage Model + * + * @property DateTime $endTime + * @property Syncroton_Model_OofMessage $oofMessage + * @property int $oofState + * @property DateTime $startTime */ class Syncroton_Model_Oof extends Syncroton_Model_AXMLEntry { - const STATUS_DISABLED = 0; - const STATUS_GLOBAL = 1; - const STATUS_TIME_BASED = 2; + public const STATUS_DISABLED = 0; + public const STATUS_GLOBAL = 1; + public const STATUS_TIME_BASED = 2; - protected $_xmlBaseElement = array('Get', 'Set'); + protected $_xmlBaseElement = 'Get', 'Set'; - protected $_properties = array( - 'Settings' => array( - 'endTime' => array('type' => 'datetime'), - 'oofMessage' => array('type' => 'container', 'multiple' => true, 'class' => 'Syncroton_Model_OofMessage'), - 'oofState' => array('type' => 'number'), - 'startTime' => array('type' => 'datetime'), - ) - ); + protected $_properties = + 'Settings' => + 'endTime' => 'type' => 'datetime', + 'oofMessage' => 'type' => 'container', 'multiple' => true, 'class' => 'Syncroton_Model_OofMessage', + 'oofState' => 'type' => 'number', + 'startTime' => 'type' => 'datetime', + , + ; }
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Model/OofMessage.php
Changed
@@ -18,16 +18,16 @@ */ class Syncroton_Model_OofMessage extends Syncroton_Model_AXMLEntry { - protected $_xmlBaseElement = array('OofMessage'); + protected $_xmlBaseElement = 'OofMessage'; - protected $_properties = array( - 'Settings' => array( - 'appliesToInternal' => array('type' => 'none'), - 'appliesToExternalKnown' => array('type' => 'none'), - 'appliesToExternalUnknown' => array('type' => 'none'), - 'bodyType' => array('type' => 'string'), - 'enabled' => array('type' => 'string'), - 'replyMessage' => array('type' => 'string'), - ) - ); + protected $_properties = + 'Settings' => + 'appliesToInternal' => 'type' => 'none', + 'appliesToExternalKnown' => 'type' => 'none', + 'appliesToExternalUnknown' => 'type' => 'none', + 'bodyType' => 'type' => 'string', + 'enabled' => 'type' => 'string', + 'replyMessage' => 'type' => 'string', + , + ; }
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Model/Policy.php
Changed
@@ -18,59 +18,57 @@ class Syncroton_Model_Policy extends Syncroton_Model_AXMLEntry implements Syncroton_Model_IPolicy { protected $_xmlBaseElement = 'EASProvisionDoc'; - - protected $_properties = array( - 'Internal' => array( - 'id' => array('type' => 'string'), - 'description' => array('type' => 'string'), - 'name' => array('type' => 'string'), - 'policyKey' => array('type' => 'string'), - ), - 'Provision' => array( - 'allowBluetooth' => array('type' => 'number'), - 'allowSMIMEEncryptionAlgorithmNegotiation' => array('type' => 'number'), - 'allowBrowser' => array('type' => 'number'), - 'allowCamera' => array('type' => 'number'), - 'allowConsumerEmail' => array('type' => 'number'), - 'allowDesktopSync' => array('type' => 'number'), - 'allowHTMLEmail' => array('type' => 'number'), - 'allowInternetSharing' => array('type' => 'number'), - 'allowIrDA' => array('type' => 'number'), - 'allowPOPIMAPEmail' => array('type' => 'number'), - 'allowRemoteDesktop' => array('type' => 'number'), - 'allowSimpleDevicePassword' => array('type' => 'number'), - 'allowSMIMEEncryptionAlgorithmNegotiation' => array('type' => 'number'), - 'allowSMIMESoftCerts' => array('type' => 'number'), - 'allowStorageCard' => array('type' => 'number'), - 'allowTextMessaging' => array('type' => 'number'), - 'allowUnsignedApplications' => array('type' => 'number'), - 'allowUnsignedInstallationPackages' => array('type' => 'number'), - 'allowWifi' => array('type' => 'number'), - 'alphanumericDevicePasswordRequired' => array('type' => 'number'), - 'approvedApplicationList' => array('type' => 'container', 'childName' => 'Hash'), - 'attachmentsEnabled' => array('type' => 'number'), - 'devicePasswordEnabled' => array('type' => 'number'), - 'devicePasswordExpiration' => array('type' => 'number'), - 'devicePasswordHistory' => array('type' => 'number'), - 'maxAttachmentSize' => array('type' => 'number'), - 'maxCalendarAgeFilter' => array('type' => 'number'), - 'maxDevicePasswordFailedAttempts' => array('type' => 'number'), - 'maxEmailAgeFilter' => array('type' => 'number'), - 'maxEmailBodyTruncationSize' => array('type' => 'number'), - 'maxEmailHTMLBodyTruncationSize' => array('type' => 'number'), - 'maxInactivityTimeDeviceLock' => array('type' => 'number'), - 'minDevicePasswordComplexCharacters' => array('type' => 'number'), - 'minDevicePasswordLength' => array('type' => 'number'), - 'passwordRecoveryEnabled' => array('type' => 'number'), - 'requireDeviceEncryption' => array('type' => 'number'), - 'requireEncryptedSMIMEMessages' => array('type' => 'number'), - 'requireEncryptionSMIMEAlgorithm' => array('type' => 'number'), - 'requireManualSyncWhenRoaming' => array('type' => 'number'), - 'requireSignedSMIMEAlgorithm' => array('type' => 'number'), - 'requireSignedSMIMEMessages' => array('type' => 'number'), - 'requireStorageCardEncryption' => array('type' => 'number'), - 'unapprovedInROMApplicationList' => array('type' => 'container', 'childName' => 'ApplicationName') - ) - ); -} + protected $_properties = + 'Internal' => + 'id' => 'type' => 'string', + 'description' => 'type' => 'string', + 'name' => 'type' => 'string', + 'policyKey' => 'type' => 'string', + , + 'Provision' => + 'allowBluetooth' => 'type' => 'number', + 'allowBrowser' => 'type' => 'number', + 'allowCamera' => 'type' => 'number', + 'allowConsumerEmail' => 'type' => 'number', + 'allowDesktopSync' => 'type' => 'number', + 'allowHTMLEmail' => 'type' => 'number', + 'allowInternetSharing' => 'type' => 'number', + 'allowIrDA' => 'type' => 'number', + 'allowPOPIMAPEmail' => 'type' => 'number', + 'allowRemoteDesktop' => 'type' => 'number', + 'allowSimpleDevicePassword' => 'type' => 'number', + 'allowSMIMEEncryptionAlgorithmNegotiation' => 'type' => 'number', + 'allowSMIMESoftCerts' => 'type' => 'number', + 'allowStorageCard' => 'type' => 'number', + 'allowTextMessaging' => 'type' => 'number', + 'allowUnsignedApplications' => 'type' => 'number', + 'allowUnsignedInstallationPackages' => 'type' => 'number', + 'allowWifi' => 'type' => 'number', + 'alphanumericDevicePasswordRequired' => 'type' => 'number', + 'approvedApplicationList' => 'type' => 'container', 'childName' => 'Hash', + 'attachmentsEnabled' => 'type' => 'number', + 'devicePasswordEnabled' => 'type' => 'number', + 'devicePasswordExpiration' => 'type' => 'number', + 'devicePasswordHistory' => 'type' => 'number', + 'maxAttachmentSize' => 'type' => 'number', + 'maxCalendarAgeFilter' => 'type' => 'number', + 'maxDevicePasswordFailedAttempts' => 'type' => 'number', + 'maxEmailAgeFilter' => 'type' => 'number', + 'maxEmailBodyTruncationSize' => 'type' => 'number', + 'maxEmailHTMLBodyTruncationSize' => 'type' => 'number', + 'maxInactivityTimeDeviceLock' => 'type' => 'number', + 'minDevicePasswordComplexCharacters' => 'type' => 'number', + 'minDevicePasswordLength' => 'type' => 'number', + 'passwordRecoveryEnabled' => 'type' => 'number', + 'requireDeviceEncryption' => 'type' => 'number', + 'requireEncryptedSMIMEMessages' => 'type' => 'number', + 'requireEncryptionSMIMEAlgorithm' => 'type' => 'number', + 'requireManualSyncWhenRoaming' => 'type' => 'number', + 'requireSignedSMIMEAlgorithm' => 'type' => 'number', + 'requireSignedSMIMEMessages' => 'type' => 'number', + 'requireStorageCardEncryption' => 'type' => 'number', + 'unapprovedInROMApplicationList' => 'type' => 'container', 'childName' => 'ApplicationName', + , + ; +}
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Model/SendMail.php
Changed
@@ -19,16 +19,16 @@ */ class Syncroton_Model_SendMail extends Syncroton_Model_AXMLEntry { - protected $_properties = array( - 'ComposeMail' => array( - 'accountId' => array('type' => 'string'), - 'clientId' => array('type' => 'string'), - 'mime' => array('type' => 'byteArray'), - 'saveInSentItems' => array('type' => 'string'), - 'status' => array('type' => 'number'), - ), - 'RightsManagement' => array( - 'templateID' => array('type' => 'string'), - ) - ); + protected $_properties = + 'ComposeMail' => + 'accountId' => 'type' => 'string', + 'clientId' => 'type' => 'string', + 'mime' => 'type' => 'byteArray', + 'saveInSentItems' => 'type' => 'string', + 'status' => 'type' => 'number', + , + 'RightsManagement' => + 'templateID' => 'type' => 'string', + , + ; }
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Model/SmartForward.php
Changed
@@ -19,18 +19,18 @@ */ class Syncroton_Model_SmartForward extends Syncroton_Model_AXMLEntry { - protected $_properties = array( - 'ComposeMail' => array( - 'accountId' => array('type' => 'string'), - 'clientId' => array('type' => 'string'), - 'mime' => array('type' => 'byteArray'), - 'replaceMime' => array('type' => 'string'), - 'saveInSentItems' => array('type' => 'string'), - 'source' => array('type' => 'container'), // or string - 'status' => array('type' => 'number'), - ), - 'RightsManagement' => array( - 'templateID' => array('type' => 'string'), - ) - ); + protected $_properties = + 'ComposeMail' => + 'accountId' => 'type' => 'string', + 'clientId' => 'type' => 'string', + 'mime' => 'type' => 'byteArray', + 'replaceMime' => 'type' => 'string', + 'saveInSentItems' => 'type' => 'string', + 'source' => 'type' => 'container', // or string + 'status' => 'type' => 'number', + , + 'RightsManagement' => + 'templateID' => 'type' => 'string', + , + ; }
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Model/SmartReply.php
Changed
@@ -19,18 +19,18 @@ */ class Syncroton_Model_SmartReply extends Syncroton_Model_AXMLEntry { - protected $_properties = array( - 'ComposeMail' => array( - 'accountId' => array('type' => 'string'), - 'clientId' => array('type' => 'string'), - 'mime' => array('type' => 'byteArray'), - 'replaceMime' => array('type' => 'string'), - 'saveInSentItems' => array('type' => 'string'), - 'source' => array('type' => 'container'), // or string - 'status' => array('type' => 'number'), - ), - 'RightsManagement' => array( - 'templateID' => array('type' => 'string'), - ) - ); + protected $_properties = + 'ComposeMail' => + 'accountId' => 'type' => 'string', + 'clientId' => 'type' => 'string', + 'mime' => 'type' => 'byteArray', + 'replaceMime' => 'type' => 'string', + 'saveInSentItems' => 'type' => 'string', + 'source' => 'type' => 'container', // or string + 'status' => 'type' => 'number', + , + 'RightsManagement' => + 'templateID' => 'type' => 'string', + , + ; }
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Model/StoreRequest.php
Changed
@@ -16,13 +16,13 @@ * * @package Syncroton * @subpackage Model - * @property string name - * @property array options - * @property array query + * @property string $name + * @property array $options + * @property array $query */ class Syncroton_Model_StoreRequest { - protected $_store = array(); + protected $_store = ; protected $_xmlStore; @@ -37,12 +37,12 @@ public function setFromArray(array $properties) { - $this->_store = array( - 'options' => array( + $this->_store = + 'options' => 'mimeSupport' => Syncroton_Command_Sync::MIMESUPPORT_DONT_SEND_MIME, - 'bodyPreferences' => array() - ), - ); + 'bodyPreferences' => , + , + ; foreach ($properties as $key => $value) { try { @@ -67,13 +67,13 @@ $this->_xmlStore = $xmlStore; - $this->_store = array( + $this->_store = 'name' => (string) $xmlStore->Name, - 'options' => array( + 'options' => 'mimeSupport' => Syncroton_Command_Sync::MIMESUPPORT_DONT_SEND_MIME, - 'bodyPreferences' => array(), - ), - ); + 'bodyPreferences' => , + , + ; // Process Query if ($this->_store'name' == 'GAL') { @@ -176,15 +176,15 @@ $this->_store'options''range' = (string) $xmlStore->Options->Range; } else { switch ($this->_store'name') { - case 'DocumentLibrary': - case 'Document Library': //? - $this->_store'options''range' = '0-999'; - break; - case 'Mailbox': - case 'GAL': - default: - $this->_store'options''range' = '0-99'; - break; + case 'DocumentLibrary': + case 'Document Library': //? + $this->_store'options''range' = '0-999'; + break; + case 'Mailbox': + case 'GAL': + default: + $this->_store'options''range' = '0-99'; + break; } } @@ -193,20 +193,20 @@ if (isset($xmlStore->Options->MIMESupport)) { $this->_store'options''mimeSupport' = (int) $xmlStore->Options->MIMESupport; } -/* - if (isset($xmlStore->Options->MIMETruncation)) { - $this->_store'options''mimeTruncation' = (int)$xmlStore->Options->MIMETruncation; - } -*/ + /* + if (isset($xmlStore->Options->MIMETruncation)) { + $this->_store'options''mimeTruncation' = (int)$xmlStore->Options->MIMETruncation; + } + */ // try to fetch element from AirSyncBase:BodyPreference $airSyncBase = $xmlStore->Options->children('uri:AirSyncBase'); if (isset($airSyncBase->BodyPreference)) { foreach ($airSyncBase->BodyPreference as $bodyPreference) { $type = (int) $bodyPreference->Type; - $this->_store'options''bodyPreferences'$type = array( - 'type' => $type - ); + $this->_store'options''bodyPreferences'$type = + 'type' => $type, + ; // optional if (isset($bodyPreference->TruncationSize)) { @@ -244,4 +244,4 @@ { unset($this->_store$name); } -} \ No newline at end of file +}
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Model/StoreResponse.php
Changed
@@ -1,12 +1,13 @@ <?php + /** * Syncroton * * @package Syncroton * @subpackage Model * @license http://www.tine20.org/licenses/lgpl.html LGPL Version 3 - * @copyright Copyright (c) 2012-2012 Metaways Infosystems GmbH (http://www.metaways.de) - * @author Lars Kneschke <l.kneschke@metaways.de> + * @copyright Copyright (c) 2012-2014 Kolab Systems AG + * @author Aleksander Machniak <machniak@kolabsys.com> */ /** @@ -14,40 +15,41 @@ * * @package Syncroton * @subpackage Model - * @property string status - * @property array result - * @property array range - * @property int total + * + * @property int $status + * @property array $result + * @property array $range + * @property int $total */ class Syncroton_Model_StoreResponse extends Syncroton_Model_AXMLEntry { /** * status constants */ - const STATUS_SUCCESS = 1; - const STATUS_INVALIDREQUEST = 2; - const STATUS_SERVERERROR = 3; - const STATUS_BADLINK = 4; - const STATUS_ACCESSDENIED = 5; - const STATUS_NOTFOUND = 6; - const STATUS_CONNECTIONFAILED = 7; - const STATUS_TOOCOMPLEX = 8; - const STATUS_TIMEDOUT = 10; - const STATUS_FOLDERSYNCREQUIRED = 11; - const STATUS_ENDOFRANGE = 12; - const STATUS_ACCESSBLOCKED = 13; - const STATUS_CREDENTIALSREQUIRED = 14; + public const STATUS_SUCCESS = 1; + public const STATUS_INVALIDREQUEST = 2; + public const STATUS_SERVERERROR = 3; + public const STATUS_BADLINK = 4; + public const STATUS_ACCESSDENIED = 5; + public const STATUS_NOTFOUND = 6; + public const STATUS_CONNECTIONFAILED = 7; + public const STATUS_TOOCOMPLEX = 8; + public const STATUS_TIMEDOUT = 10; + public const STATUS_FOLDERSYNCREQUIRED = 11; + public const STATUS_ENDOFRANGE = 12; + public const STATUS_ACCESSBLOCKED = 13; + public const STATUS_CREDENTIALSREQUIRED = 14; protected $_xmlBaseElement = 'Store'; - protected $_properties = array( - 'Search' => array( - 'status' => array('type' => 'number'), - 'result' => array('type' => 'container', 'multiple' => true), - 'range' => array('type' => 'string'), - 'total' => array('type' => 'number'), - ) - ); + protected $_properties = + 'Search' => + 'status' => 'type' => 'number', + 'result' => 'type' => 'container', 'multiple' => true, + 'range' => 'type' => 'string', + 'total' => 'type' => 'number', + , + ; /** * (non-PHPdoc) @@ -63,7 +65,7 @@ continue; } - list ($nameSpace, $elementProperties) = $this->_getElementProperties($elementName); + $nameSpace, $elementProperties = $this->_getElementProperties($elementName); $nameSpace = 'uri:' . $nameSpace; @@ -81,6 +83,7 @@ $value = implode('-', $value); } + // no break default: $element = $_domParrent->ownerDocument->createElementNS($nameSpace, ucfirst($elementName)); $element->appendChild($_domParrent->ownerDocument->createTextNode($value));
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Model/StoreResponseResult.php
Changed
@@ -19,14 +19,14 @@ { protected $_xmlBaseElement = 'Result'; - protected $_properties = array( - 'AirSync' => array( - 'class' => array('type' => 'string'), - 'collectionId' => array('type' => 'string'), - ), - 'Search' => array( - 'longId' => array('type' => 'string', 'supportedSince' => '2.5'), - 'properties' => array('type' => 'container', 'supportedSince' => '2.5'), - ) - ); + protected $_properties = + 'AirSync' => + 'class' => 'type' => 'string', + 'collectionId' => 'type' => 'string', + , + 'Search' => + 'longId' => 'type' => 'string', 'supportedSince' => '2.5', + 'properties' => 'type' => 'container', 'supportedSince' => '2.5', + , + ; }
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Model/SyncCollection.php
Changed
@@ -14,35 +14,39 @@ * * @package Syncroton * @subpackage Model - * @property string class - * @property string collectionId - * @property bool deletesAsMoves - * @property bool getChanges - * @property string syncKey - * @property int windowSize + * + * @property string $class + * @property string $collectionId + * @property bool $deletesAsMoves + * @property Syncroton_Model_IFolder $folder + * @property bool $getChanges + * @property array $options + * @property int $syncKey + * @property ?Syncroton_Model_ISyncState $syncState + * @property array $toBeFetched + * @property int $windowSize */ - class Syncroton_Model_SyncCollection extends Syncroton_Model_AXMLEntry { - protected $_elements = array( + protected $_elements = 'syncState' => null, - 'folder' => null - ); - + 'folder' => null, + ; + protected $_xmlCollection; - + protected $_xmlBaseElement = 'Collection'; - - public function __construct($properties = null) - { - if ($properties instanceof SimpleXMLElement) { - $this->setFromSimpleXMLElement($properties); - } elseif (is_array($properties)) { - $this->setFromArray($properties); + + public function __construct($properties = null) + { + if ($properties instanceof SimpleXMLElement) { + $this->setFromSimpleXMLElement($properties); + } elseif (is_array($properties)) { + $this->setFromArray($properties); } - + if (!isset($this->_elements'options')) { - $this->_elements'options' = array(); + $this->_elements'options' = ; } if (!isset($this->_elements'options''filterType')) { $this->_elements'options''filterType' = Syncroton_Command_Sync::FILTER_NOTHING; @@ -53,14 +57,14 @@ if (!isset($this->_elements'options''mimeTruncation')) { $this->_elements'options''mimeTruncation' = Syncroton_Command_Sync::TRUNCATE_NOTHING; } - if (!isset($this->_elements'options''bodyPreferences')) { - $this->_elements'options''bodyPreferences' = array(); + if (!isset($this->_elements'options''bodyPreferences')) { + $this->_elements'options''bodyPreferences' = ; } - } - + } + /** * return XML element which holds all client Add commands - * + * * @return SimpleXMLElement */ public function getClientAdds() @@ -68,13 +72,13 @@ if (! $this->_xmlCollection instanceof SimpleXMLElement) { throw new InvalidArgumentException('no collection xml element set'); } - + return $this->_xmlCollection->Commands->Add; } - + /** * return XML element which holds all client Change commands - * + * * @return SimpleXMLElement */ public function getClientChanges() @@ -82,13 +86,13 @@ if (! $this->_xmlCollection instanceof SimpleXMLElement) { throw new InvalidArgumentException('no collection xml element set'); } - + return $this->_xmlCollection->Commands->Change; } - + /** * return XML element which holds all client Delete commands - * + * * @return SimpleXMLElement */ public function getClientDeletes() @@ -96,13 +100,13 @@ if (! $this->_xmlCollection instanceof SimpleXMLElement) { throw new InvalidArgumentException('no collection xml element set'); } - + return $this->_xmlCollection->Commands->Delete; } - + /** * return XML element which holds all client Fetch commands - * + * * @return SimpleXMLElement */ public function getClientFetches() @@ -110,13 +114,13 @@ if (! $this->_xmlCollection instanceof SimpleXMLElement) { throw new InvalidArgumentException('no collection xml element set'); } - + return $this->_xmlCollection->Commands->Fetch; } - + /** * check if client sent a Add command - * + * * @throws InvalidArgumentException * @return bool */ @@ -125,13 +129,13 @@ if (! $this->_xmlCollection instanceof SimpleXMLElement) { return false; } - + return isset($this->_xmlCollection->Commands->Add); } - + /** * check if client sent a Change command - * + * * @throws InvalidArgumentException * @return bool */ @@ -140,13 +144,13 @@ if (! $this->_xmlCollection instanceof SimpleXMLElement) { return false; } - + return isset($this->_xmlCollection->Commands->Change); } - + /** * check if client sent a Delete command - * + * * @throws InvalidArgumentException * @return bool */ @@ -155,13 +159,13 @@ if (! $this->_xmlCollection instanceof SimpleXMLElement) { return false; } - + return isset($this->_xmlCollection->Commands->Delete); } - + /** * check if client sent a Fetch command - * + * * @throws InvalidArgumentException * @return bool */
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Model/SyncState.php
Changed
@@ -18,4 +18,3 @@ class Syncroton_Model_SyncState extends Syncroton_Model_AEntry implements Syncroton_Model_ISyncState { } -
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Model/Task.php
Changed
@@ -14,35 +14,37 @@ * * @package Syncroton * @subpackage Model - * @property string class - * @property string collectionId - * @property bool deletesAsMoves - * @property bool getChanges - * @property string syncKey - * @property int windowSize + * @property string $class + * @property string $collectionId + * @property bool $deletesAsMoves + * @property bool $getChanges + * @property string $syncKey + * @property DateTime $utcDueDate + * @property DateTime $utcStartDate + * @property int $windowSize */ class Syncroton_Model_Task extends Syncroton_Model_AXMLEntry { protected $_xmlBaseElement = 'ApplicationData'; - - protected $_properties = array( - 'AirSyncBase' => array( - 'body' => array('type' => 'container', 'class' => 'Syncroton_Model_EmailBody') - ), - 'Tasks' => array( - 'categories' => array('type' => 'container', 'childElement' => 'category'), - 'complete' => array('type' => 'number'), - 'dateCompleted' => array('type' => 'datetime'), - 'dueDate' => array('type' => 'datetime'), - 'importance' => array('type' => 'number'), - 'recurrence' => array('type' => 'container'), - 'reminderSet' => array('type' => 'number'), - 'reminderTime' => array('type' => 'datetime'), - 'sensitivity' => array('type' => 'number'), - 'startDate' => array('type' => 'datetime'), - 'subject' => array('type' => 'string'), - 'utcDueDate' => array('type' => 'datetime'), - 'utcStartDate' => array('type' => 'datetime'), - ) - ); -} \ No newline at end of file + + protected $_properties = + 'AirSyncBase' => + 'body' => 'type' => 'container', 'class' => 'Syncroton_Model_EmailBody', + , + 'Tasks' => + 'categories' => 'type' => 'container', 'childElement' => 'category', + 'complete' => 'type' => 'number', + 'dateCompleted' => 'type' => 'datetime', + 'dueDate' => 'type' => 'datetime', + 'importance' => 'type' => 'number', + 'recurrence' => 'type' => 'container', + 'reminderSet' => 'type' => 'number', + 'reminderTime' => 'type' => 'datetime', + 'sensitivity' => 'type' => 'number', + 'startDate' => 'type' => 'datetime', + 'subject' => 'type' => 'string', + 'utcDueDate' => 'type' => 'datetime', + 'utcStartDate' => 'type' => 'datetime', + , + ; +}
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Model/TaskRecurrence.php
Changed
@@ -14,54 +14,54 @@ * * @package Syncroton * @subpackage Model - * @property string class - * @property string collectionId - * @property bool deletesAsMoves - * @property bool getChanges - * @property string syncKey - * @property int windowSize + * @property string $class + * @property string $collectionId + * @property bool $deletesAsMoves + * @property bool $getChanges + * @property string $syncKey + * @property int $windowSize */ class Syncroton_Model_TaskRecurrence extends Syncroton_Model_AXMLEntry { protected $_xmlBaseElement = 'Recurrence'; - + /** * recur types */ - const TYPE_DAILY = 0; // Recurs daily. - const TYPE_WEEKLY = 1; // Recurs weekly - const TYPE_MONTHLY = 2; // Recurs monthly - const TYPE_MONTHLY_DAYN = 3; // Recurs monthly on the nth day - const TYPE_YEARLY = 5; // Recurs yearly - const TYPE_YEARLY_DAYN = 6; // Recurs yearly on the nth day - + public const TYPE_DAILY = 0; // Recurs daily. + public const TYPE_WEEKLY = 1; // Recurs weekly + public const TYPE_MONTHLY = 2; // Recurs monthly + public const TYPE_MONTHLY_DAYN = 3; // Recurs monthly on the nth day + public const TYPE_YEARLY = 5; // Recurs yearly + public const TYPE_YEARLY_DAYN = 6; // Recurs yearly on the nth day + /** * day of week constants */ - const RECUR_DOW_SUNDAY = 1; - const RECUR_DOW_MONDAY = 2; - const RECUR_DOW_TUESDAY = 4; - const RECUR_DOW_WEDNESDAY = 8; - const RECUR_DOW_THURSDAY = 16; - const RECUR_DOW_FRIDAY = 32; - const RECUR_DOW_SATURDAY = 64; - - protected $_properties = array( - 'Tasks' => array( - 'calendarType' => array('type' => 'number'), - 'dayOfMonth' => array('type' => 'number'), - 'dayOfWeek' => array('type' => 'number'), - 'deadOccur' => array('type' => 'number'), - 'firstDayOfWeek' => array('type' => 'number'), - 'interval' => array('type' => 'number'), - 'isLeapMonth' => array('type' => 'number'), - 'monthOfYear' => array('type' => 'number'), - 'occurrences' => array('type' => 'number'), - 'regenerate' => array('type' => 'number'), - 'start' => array('type' => 'datetime'), - 'type' => array('type' => 'number'), - 'until' => array('type' => 'datetime'), - 'weekOfMonth' => array('type' => 'number'), - ) - ); -} \ No newline at end of file + public const RECUR_DOW_SUNDAY = 1; + public const RECUR_DOW_MONDAY = 2; + public const RECUR_DOW_TUESDAY = 4; + public const RECUR_DOW_WEDNESDAY = 8; + public const RECUR_DOW_THURSDAY = 16; + public const RECUR_DOW_FRIDAY = 32; + public const RECUR_DOW_SATURDAY = 64; + + protected $_properties = + 'Tasks' => + 'calendarType' => 'type' => 'number', + 'dayOfMonth' => 'type' => 'number', + 'dayOfWeek' => 'type' => 'number', + 'deadOccur' => 'type' => 'number', + 'firstDayOfWeek' => 'type' => 'number', + 'interval' => 'type' => 'number', + 'isLeapMonth' => 'type' => 'number', + 'monthOfYear' => 'type' => 'number', + 'occurrences' => 'type' => 'number', + 'regenerate' => 'type' => 'number', + 'start' => 'type' => 'datetime', + 'type' => 'type' => 'number', + 'until' => 'type' => 'datetime', + 'weekOfMonth' => 'type' => 'number', + , + ; +}
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Registry.php
Changed
@@ -27,33 +27,34 @@ */ class Syncroton_Registry extends ArrayObject { - const CALENDAR_DATA_CLASS = 'calendar_data_class'; - const CONTACTS_DATA_CLASS = 'contacts_data_class'; - const EMAIL_DATA_CLASS = 'email_data_class'; - const NOTES_DATA_CLASS = 'notes_data_class'; - const TASKS_DATA_CLASS = 'tasks_data_class'; - const GAL_DATA_CLASS = 'gal_data_class'; - - const DEFAULT_POLICY = 'default_policy'; - const PING_TIMEOUT = 'ping_timeout'; - const PING_INTERVAL = 'ping_interval'; - const QUIET_TIME = 'quiet_time'; - const SESSION_VALIDATOR = 'session_validator'; - const MAX_COLLECTIONS = 'max_collections'; - - const DATABASE = 'database'; - const TRANSACTIONMANAGER = 'transactionmanager'; - - const CONTENTSTATEBACKEND = 'contentstatebackend'; - const DEVICEBACKEND = 'devicebackend'; - const FOLDERBACKEND = 'folderbackend'; - const POLICYBACKEND = 'policybackend'; - const SYNCSTATEBACKEND = 'syncstatebackend'; - const LOGGERBACKEND = 'loggerBackend'; - - const SLEEP_CALLBACK = 'sleep_callback'; - const WAKEUP_CALLBACK = 'wakeup_callback'; - + public const CALENDAR_DATA_CLASS = 'calendar_data_class'; + public const CONTACTS_DATA_CLASS = 'contacts_data_class'; + public const EMAIL_DATA_CLASS = 'email_data_class'; + public const NOTES_DATA_CLASS = 'notes_data_class'; + public const TASKS_DATA_CLASS = 'tasks_data_class'; + public const GAL_DATA_CLASS = 'gal_data_class'; + + public const DEFAULT_POLICY = 'default_policy'; + public const PING_TIMEOUT = 'ping_timeout'; + public const PING_INTERVAL = 'ping_interval'; + public const QUIET_TIME = 'quiet_time'; + public const SESSION_VALIDATOR = 'session_validator'; + public const MAX_COLLECTIONS = 'max_collections'; + public const MAX_PING_INTERVAL = 'max_ping_interval'; + + public const DATABASE = 'database'; + public const TRANSACTIONMANAGER = 'transactionmanager'; + + public const CONTENTSTATEBACKEND = 'contentstatebackend'; + public const DEVICEBACKEND = 'devicebackend'; + public const FOLDERBACKEND = 'folderbackend'; + public const POLICYBACKEND = 'policybackend'; + public const SYNCSTATEBACKEND = 'syncstatebackend'; + public const LOGGERBACKEND = 'loggerBackend'; + + public const SLEEP_CALLBACK = 'sleep_callback'; + public const WAKEUP_CALLBACK = 'wakeup_callback'; + /** * Class name of the singleton registry object. * @var string @@ -62,7 +63,7 @@ /** * Registry object provides storage for shared objects. - * @var Syncroton_Registry + * @var Syncroton_Registry|null */ private static $_registry = null; @@ -87,10 +88,10 @@ { return self::get(self::DATABASE); } - + /** - * return transaction manager class - * + * return transaction manager class + * * @return Syncroton_TransactionManagerInterface */ public static function getTransactionManager() @@ -98,10 +99,10 @@ if (!self::isRegistered(self::TRANSACTIONMANAGER)) { self::set(self::TRANSACTIONMANAGER, Syncroton_TransactionManager::getInstance()); } - + return self::get(self::TRANSACTIONMANAGER); - } - + } + /** * Set the default registry instance to a specified instance. * @@ -196,13 +197,13 @@ return $instance->offsetGet($index); } - + /** * returns content state backend - * + * * creates Syncroton_Backend_Content on the fly if not before via * Syncroton_Registry::set(self::CONTENTSTATEBACKEND, $backend); - * + * * @return Syncroton_Backend_IContent */ public static function getContentStateBackend() @@ -210,16 +211,16 @@ if (!self::isRegistered(self::CONTENTSTATEBACKEND)) { self::set(self::CONTENTSTATEBACKEND, new Syncroton_Backend_Content(self::getDatabase())); } - + return self::get(self::CONTENTSTATEBACKEND); } /** * returns device backend - * + * * creates Syncroton_Backend_Device on the fly if not before via * Syncroton_Registry::set(self::DEVICEBACKEND, $backend); - * + * * @return Syncroton_Backend_IDevice */ public static function getDeviceBackend() @@ -227,16 +228,16 @@ if (!self::isRegistered(self::DEVICEBACKEND)) { self::set(self::DEVICEBACKEND, new Syncroton_Backend_Device(self::getDatabase())); } - + return self::get(self::DEVICEBACKEND); } /** * returns folder backend - * + * * creates Syncroton_Backend_Folder on the fly if not before via * Syncroton_Registry::set(self::FOLDERBACKEND, $backend); - * + * * @return Syncroton_Backend_IFolder */ public static function getFolderBackend() @@ -244,10 +245,10 @@ if (!self::isRegistered(self::FOLDERBACKEND)) { self::set(self::FOLDERBACKEND, new Syncroton_Backend_Folder(self::getDatabase())); } - + return self::get(self::FOLDERBACKEND); } - + /** * Return maximum ping interval (HeartbeatInterval) value (in seconds) * @@ -261,7 +262,7 @@ return self::get(self::PING_INTERVAL); } - + /** /** * Return maximum ping interval (HeartbeatInterval) value (in seconds) @@ -278,10 +279,10 @@ } /** - * return ping timeout - * - * sleep "ping timeout" seconds between folder checks in Ping and Sync command - * + * return ping timeout + * + * sleep "ping timeout" seconds between folder checks in Ping and Sync command + * * @return int */ public static function getPingTimeout() @@ -289,10 +290,10 @@ if (!self::isRegistered(self::PING_TIMEOUT)) { return 60; } - + return self::get(self::PING_TIMEOUT);
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Server.php
Changed
@@ -10,113 +10,116 @@ /** * class to handle incoming http ActiveSync requests - * + * * @package Syncroton */ class Syncroton_Server { - const PARAMETER_ATTACHMENTNAME = 0; - const PARAMETER_COLLECTIONID = 1; - const PARAMETER_ITEMID = 3; - const PARAMETER_OPTIONS = 7; - const MAX_HEARTBEAT_INTERVAL = 3540; // 59 minutes - + public const PARAMETER_ATTACHMENTNAME = 0; + public const PARAMETER_COLLECTIONID = 1; + public const PARAMETER_ITEMID = 3; + public const PARAMETER_OPTIONS = 7; + public const MAX_HEARTBEAT_INTERVAL = 3540; // 59 minutes + protected $_body; - + /** * informations about the currently device * * @var Syncroton_Backend_IDevice */ protected $_deviceBackend; - + /** * @var Zend_Log */ protected $_logger; - + /** * @var Zend_Controller_Request_Http */ protected $_request; - + protected $_userId; - + public function __construct($userId, Zend_Controller_Request_Http $request = null, $body = null) { if (Syncroton_Registry::isRegistered('loggerBackend')) { $this->_logger = Syncroton_Registry::get('loggerBackend'); } - + $this->_userId = $userId; $this->_request = $request instanceof Zend_Controller_Request_Http ? $request : new Zend_Controller_Request_Http(); $this->_body = $body !== null ? $body : fopen('php://input', 'r'); - + $this->_deviceBackend = Syncroton_Registry::getDeviceBackend(); - + } - + public function handle() { - if ($this->_logger instanceof Zend_Log) + if ($this->_logger instanceof Zend_Log) { $this->_logger->debug(__METHOD__ . '::' . __LINE__ . ' REQUEST METHOD: ' . $this->_request->getMethod()); - + } + switch($this->_request->getMethod()) { case 'OPTIONS': $this->_handleOptions(); break; - + case 'POST': $this->_handlePost(); break; - + case 'GET': echo "It works!<br>Your userid is: {$this->_userId} and your IP address is: {$_SERVER'REMOTE_ADDR'}."; break; } } - + /** * handle options request */ protected function _handleOptions() { $command = new Syncroton_Command_Options(); - + $this->_sendHeaders($command->getHeaders()); } - + protected function _sendHeaders(array $headers) { foreach ($headers as $name => $value) { header($name . ': ' . $value); } - } - + } + /** * handle post request */ protected function _handlePost() { $requestParameters = $this->_getRequestParameters($this->_request); - - if ($this->_logger instanceof Zend_Log) + + if ($this->_logger instanceof Zend_Log) { $this->_logger->debug(__METHOD__ . '::' . __LINE__ . ' REQUEST ' . print_r($requestParameters, true)); - + } + $className = 'Syncroton_Command_' . $requestParameters'command'; - + if (!class_exists($className)) { - if ($this->_logger instanceof Zend_Log) + if ($this->_logger instanceof Zend_Log) { $this->_logger->notice(__METHOD__ . '::' . __LINE__ . " command not supported: " . $requestParameters'command'); - + } + header("HTTP/1.1 501 not implemented"); - + return; } - + // get user device $device = $this->_getUserDevice($this->_userId, $requestParameters); - + if ($requestParameters'contentType' == 'application/vnd.ms-sync.wbxml' || $requestParameters'contentType' == 'application/vnd.ms-sync') { // decode wbxml request try { @@ -126,112 +129,117 @@ $this->_logDomDocument($requestBody, 'request', __METHOD__, __LINE__); } } catch(Syncroton_Wbxml_Exception_UnexpectedEndOfFile $e) { - if ($this->_logger instanceof Zend_Log) + if ($this->_logger instanceof Zend_Log) { $this->_logger->warn(__METHOD__ . '::' . __LINE__ . " unexpected end of file."); - $requestBody = NULL; + } + $requestBody = null; } } else { $requestBody = $this->_body; } - + header("MS-Server-ActiveSync: 14.00.0536.000"); // avoid sending HTTP header "Content-Type: text/html" for empty sync responses ini_set('default_mimetype', 'application/vnd.ms-sync.wbxml'); - + try { $command = new $className($requestBody, $device, $requestParameters); - + $response = $command->handle(); if (!$response) { $response = $command->getResponse(); } } catch (Syncroton_Exception_ProvisioningNeeded $sepn) { - if ($this->_logger instanceof Zend_Log) + if ($this->_logger instanceof Zend_Log) { $this->_logger->info(__METHOD__ . '::' . __LINE__ . " provisioning needed"); - + } + header("HTTP/1.1 449 Retry after sending a PROVISION command"); - + if (version_compare($device->acsversion, '14.0', '>=')) { $response = $sepn->domDocument; } else { // pre 14.0 method return; } - +
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/TransactionManager.php
Changed
@@ -1,7 +1,7 @@ <?php /** * Syncroton - * + * * @package Syncroton * @license http://www.tine20.org/licenses/lgpl.html LGPL Version 3 * @copyright Copyright (c) 2008-2012 Metaways Infosystems GmbH (http://www.metaways.de) @@ -10,17 +10,17 @@ /** * Transaction Manger for Syncroton - * + * * This is the central class, all transactions within Syncroton must be handled with. - * For each supported transactionable (backend) this class start a real transaction on + * For each supported transactionable (backend) this class start a real transaction on * the first startTransaction request. - * + * * Transactions of all transactionable will be commited at once when all requested transactions * are being commited using this class. - * + * * Transactions of all transactionable will be roll back when one rollBack is requested * using this class. - * + * * @package Syncroton */ class Syncroton_TransactionManager implements Syncroton_TransactionManagerInterface @@ -28,30 +28,30 @@ /** * @var array holds all transactionables with open transactions */ - protected $_openTransactionables = array(); - + protected $_openTransactionables = ; + /** * @var array list of all open (not commited) transactions */ - protected $_openTransactions = array(); + protected $_openTransactions = ; /** - * @var Syncroton_TransactionManager + * @var ?Syncroton_TransactionManager */ - private static $_instance = NULL; - + private static $_instance = null; + /** * @var Zend_Log */ protected $_logger; - + /** * don't clone. Use the singleton. */ private function __clone() { - + } - + /** * constructor */ @@ -61,35 +61,37 @@ $this->_logger = Syncroton_Registry::get('loggerBackend'); } } - + /** - * @return Tinebase_TransactionManager + * @return Syncroton_TransactionManager */ - public static function getInstance() + public static function getInstance() { - if (self::$_instance === NULL) { - self::$_instance = new Syncroton_TransactionManager; + if (self::$_instance === null) { + self::$_instance = new Syncroton_TransactionManager(); } - + return self::$_instance; } - + /** * starts a transaction * * @param mixed $_transactionable * @return string transactionId - * @throws Tinebase_Exception_UnexpectedValue + * @throws Exception */ public function startTransaction($_transactionable) { - if ($this->_logger instanceof Zend_Log) + if ($this->_logger instanceof Zend_Log) { $this->_logger->debug(__METHOD__ . '::' . __LINE__ . " startTransaction request"); - + } + if (! in_array($_transactionable, $this->_openTransactionables)) { - if ($this->_logger instanceof Zend_Log) + if ($this->_logger instanceof Zend_Log) { $this->_logger->debug(__METHOD__ . '::' . __LINE__ . " new transactionable. Starting transaction on this resource"); - + } + if ($_transactionable instanceof Zend_Db_Adapter_Abstract) { #Tinebase_Backend_Sql_Command::setAutocommit($_transactionable,false); $_transactionable->beginTransaction(); @@ -97,19 +99,20 @@ $this->rollBack(); throw new Syncroton_Exception_UnexpectedValue('Unsupported transactionable!'); } - + array_push($this->_openTransactionables, $_transactionable); } - - $transactionId = sha1(mt_rand(). microtime()); + + $transactionId = sha1(mt_rand() . microtime()); array_push($this->_openTransactions, $transactionId); - - if ($this->_logger instanceof Zend_Log) + + if ($this->_logger instanceof Zend_Log) { $this->_logger->debug(__METHOD__ . '::' . __LINE__ . " queued transaction with id $transactionId"); - + } + return $transactionId; } - + /** * commits a transaction * @@ -118,51 +121,55 @@ */ public function commitTransaction($_transactionId) { - if ($this->_logger instanceof Zend_Log) + if ($this->_logger instanceof Zend_Log) { $this->_logger->debug(__METHOD__ . '::' . __LINE__ . " commitTransaction request for $_transactionId"); - + } + $transactionIdx = array_search($_transactionId, $this->_openTransactions); if ($transactionIdx !== false) { unset($this->_openTransactions$transactionIdx); } - + $numOpenTransactions = count($this->_openTransactions); - + if ($numOpenTransactions === 0) { - if ($this->_logger instanceof Zend_Log) + if ($this->_logger instanceof Zend_Log) { $this->_logger->debug(__METHOD__ . '::' . __LINE__ . " no more open transactions in queue commiting all transactionables"); + } foreach ($this->_openTransactionables as $transactionableIdx => $transactionable) { if ($transactionable instanceof Zend_Db_Adapter_Abstract) { $transactionable->commit(); #Tinebase_Backend_Sql_Command::setAutocommit($transactionable,true); } } - $this->_openTransactionables = array(); - $this->_openTransactions = array(); + $this->_openTransactionables = ; + $this->_openTransactions = ; } else { - if ($this->_logger instanceof Zend_Log) + if ($this->_logger instanceof Zend_Log) { $this->_logger->debug(__METHOD__ . '::' . __LINE__ . " commiting defered, as there are still $numOpenTransactions in the queue"); + } } } - + /** * perform rollBack on all transactionables with open transactions - * + * * @return void */ public function rollBack()
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/TransactionManagerInterface.php
Changed
@@ -1,7 +1,7 @@ <?php /** * Syncroton - * + * * @package Syncroton * @license http://www.tine20.org/licenses/lgpl.html LGPL Version 3 * @copyright Copyright (c) 2008-2012 Metaways Infosystems GmbH (http://www.metaways.de) @@ -10,35 +10,35 @@ /** * Transaction Manger for Syncroton - * + * * This is the central class, all transactions within Syncroton must be handled with. - * For each supported transactionable (backend) this class start a real transaction on + * For each supported transactionable (backend) this class start a real transaction on * the first startTransaction request. - * + * * Transactions of all transactionable will be commited at once when all requested transactions * are being commited using this class. - * + * * Transactions of all transactionable will be roll back when one rollBack is requested * using this class. - * + * * @package Syncroton */ interface Syncroton_TransactionManagerInterface { /** - * @return Tinebase_TransactionManager + * @return mixed */ public static function getInstance(); - + /** * starts a transaction * * @param mixed $_transactionable * @return string transactionId - * @throws Tinebase_Exception_UnexpectedValue + * @throws Exception */ public function startTransaction($_transactionable); - + /** * commits a transaction * @@ -46,10 +46,10 @@ * @return void */ public function commitTransaction($_transactionId); - + /** * perform rollBack on all transactionables with open transactions - * + * * @return void */ public function rollBack();
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Wbxml/Abstract.php
Changed
@@ -16,7 +16,7 @@ * @package Wbxml * @subpackage Wbxml */ - + abstract class Syncroton_Wbxml_Abstract { /** @@ -25,83 +25,83 @@ * @var resource */ protected $_stream; - + /** * the wbxml version * - * @var string + * @var int */ protected $_version; - + /** - * the Document Public Identifier + * the Document Public Identifier * * @var string */ protected $_dpi; - + /** * the current active dtd * - * @var Syncroton_Wbxml_Dtd_Syncml_Abstract + * @var Syncroton_Wbxml_Dtd_ActiveSync */ protected $_dtd; - + /** * the charSet used in the wbxml file * * @var string */ protected $_charSet; - + /** * currently active code page * - * @var array + * @var Syncroton_Wbxml_Dtd_ActiveSync_Abstract */ protected $_codePage; - + /** * see section 5.5 * */ - const DPI_WELLKNOWN = 'WELLKNOWN'; - + public const DPI_WELLKNOWN = 'WELLKNOWN'; + /** * see section 5.5 * */ - const DPI_STRINGTABLE = 'STRINGTABLE'; - - const SWITCH_PAGE = 0x00; - const END = 0x01; - const ENTITY = 0x02; - const STR_I = 0x03; - const LITERAL = 0x04; - const EXT_I_0 = 0x40; - const EXT_I_1 = 0x41; - const EXT_I_2 = 0x42; - const PI = 0x43; - const LITERAL_C = 0x44; - const EXT_T_0 = 0x80; - const EXT_T_1 = 0x81; - const EXT_T_2 = 0x82; - const STR_T = 0x83; - const LITERAL_A = 0x84; - const EXT_0 = 0xC0; - const EXT_1 = 0xC1; - const EXT_2 = 0xC2; - const OPAQUE = 0xC3; - const LITERAL_AC = 0xC4; - + public const DPI_STRINGTABLE = 'STRINGTABLE'; + + public const SWITCH_PAGE = 0x00; + public const END = 0x01; + public const ENTITY = 0x02; + public const STR_I = 0x03; + public const LITERAL = 0x04; + public const EXT_I_0 = 0x40; + public const EXT_I_1 = 0x41; + public const EXT_I_2 = 0x42; + public const PI = 0x43; + public const LITERAL_C = 0x44; + public const EXT_T_0 = 0x80; + public const EXT_T_1 = 0x81; + public const EXT_T_2 = 0x82; + public const STR_T = 0x83; + public const LITERAL_A = 0x84; + public const EXT_0 = 0xC0; + public const EXT_1 = 0xC1; + public const EXT_2 = 0xC2; + public const OPAQUE = 0xC3; + public const LITERAL_AC = 0xC4; + /** * the real name for this DPI is "unknown" * But Microsoft is using them for their ActiveSync stuff * instead defining their own DPI like the sycnml creators did * */ - const DPI_1 = '-//AIRSYNC//DTD AirSync//EN'; - + public const DPI_1 = '-//AIRSYNC//DTD AirSync//EN'; + /** * return wellknown identifiers * @@ -114,12 +114,12 @@ if(!defined('Syncroton_Wbxml_Abstract::DPI_' . $_uInt)) { throw new Syncroton_Wbxml_Exception('unknown wellknown identifier: ' . $_uInt); } - + $dpi = constant('Syncroton_Wbxml_Abstract::DPI_' . $_uInt); - + return $dpi; } - + /** * return multibyte integer * @@ -128,27 +128,27 @@ protected function _getMultibyteUInt() { $uInt = 0; - + do { $byte = $this->_getByte(); $uInt <<= 7; $uInt += ($byte & 127); } while (($byte & 128) != 0); - + return $uInt; } - + protected function _getByte() { $byte = fread($this->_stream, 1); - + if($byte === false) { throw new Syncroton_Wbxml_Exception("failed reading one byte"); } - + return ord($byte); } - + protected function _getOpaque($_length) { $string = ''; @@ -166,7 +166,7 @@ $string .= $chunk; $_length -= $len; } - + if (feof($this->_stream)) { break; } @@ -174,7 +174,7 @@ return $string; } - + /** * get a 0 terminated string * @@ -183,28 +183,28 @@ protected function _getTerminatedString()
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Wbxml/Decoder.php
Changed
@@ -16,30 +16,30 @@ * @package Wbxml * @subpackage Wbxml */ - + class Syncroton_Wbxml_Decoder extends Syncroton_Wbxml_Abstract { /** - * type of Document Public Identifier + * type of Document Public Identifier * * @var string the type can be Syncroton_Wbxml_Abstract::DPI_STRINGTABLE or Syncroton_Wbxml_Abstract::DPI_WELLKNOWN */ protected $_dpiType; - + /** * the string table * * @var array */ - protected $_stringTable = array(); - + protected $_stringTable = ; + /** * the xml document * * @var DOMDocument */ protected $_dom; - + /** * the main name space / aka the namespace of first tag * @@ -52,39 +52,39 @@ * * @param resource $_stream */ - public function __construct($_stream, $_dpi = NULL) + public function __construct($_stream, $_dpi = null) { if(!is_resource($_stream) || get_resource_type($_stream) != 'stream') { throw new Syncroton_Wbxml_Exception('$_stream must be a stream'); } - if($_dpi !== NULL) { + if($_dpi !== null) { $this->_dpi = $_dpi; } - + $this->_stream = $_stream; - + $this->_version = $this->_getByte(); - + if(feof($this->_stream)) { throw new Syncroton_Wbxml_Exception_UnexpectedEndOfFile(); } - + $this->_getDPI(); - + $this->_getCharset(); - + $this->_getStringTable(); - + // resolve DPI as we have read the stringtable now // this->_dpi contains the string table index if($this->_dpiType === Syncroton_Wbxml_Abstract::DPI_STRINGTABLE) { $this->_dpi = $this->_stringTable$this->_dpi; } - + #$this->_dtd = Syncroton_Wbxml_Dtd_Factory::factory($this->_dpi); $this->_dtd = Syncroton_Wbxml_Dtd_Factory::factory(Syncroton_Wbxml_Dtd_Factory::ACTIVESYNC); } - + /** * return the Document Public Identifier * @@ -95,37 +95,37 @@ { return $this->_dpi; } - + /** * return the wbxml version * - * @return string + * @return int */ public function getVersion() { return $this->_version; } - + /** - * decodes the tags + * decodes the tags * * @return DOMDocument the decoded xml */ public function decode() { - $openTags = NULL; - $node = NULL; + $openTags = null; + $node = null; $this->_codePage = $this->_dtd->getCurrentCodePage(); - + while (!feof($this->_stream)) { $byte = $this->_getByte(); - + switch($byte) { case Syncroton_Wbxml_Abstract::END: $node = $node->parentNode; $openTags--; break; - + case Syncroton_Wbxml_Abstract::OPAQUE: $length = $this->_getMultibyteUInt(); if($length > 0) { @@ -133,14 +133,14 @@ try { // let see if we can decode it. maybe the opaque data is wbxml encoded content $opaqueDataStream = fopen("php://temp", 'r+'); - fputs($opaqueDataStream, $opaque); + fwrite($opaqueDataStream, $opaque); rewind($opaqueDataStream); - + $opaqueContentDecoder = new Syncroton_Wbxml_Decoder($opaqueDataStream); $dom = $opaqueContentDecoder->decode(); - + fclose($opaqueDataStream); - + foreach($dom->childNodes as $newNode) { if($newNode instanceof DOMElement) { $newNode = $this->_dom->importNode($newNode, true); @@ -149,22 +149,22 @@ } } catch (Exception $e) { // if not, just treat it as a string - $node->appendChild($this->_dom->createTextNode($opaque)); + $node->appendChild($this->_dom->createTextNode($opaque)); } } break; - + case Syncroton_Wbxml_Abstract::STR_I: $string = $this->_getTerminatedString(); - $node->appendChild($this->_dom->createTextNode($string)); + $node->appendChild($this->_dom->createTextNode($string)); break; - + case Syncroton_Wbxml_Abstract::SWITCH_PAGE: $page = $this->_getByte(); $this->_codePage = $this->_dtd->switchCodePage($page); #echo "switched to codepage $page\n"; break; - + default: $tagHasAttributes = (($byte & 0x80) != 0); $tagHasContent = (($byte & 0x40) != 0); @@ -179,10 +179,10 @@ } $nameSpace = $this->_codePage->getNameSpace(); $codePageName = $this->_codePage->getCodePageName(); - + #echo "Tag: $nameSpace:$tag\n"; - - if ($node === NULL) { + + if ($node === null) { // create the domdocument $node = $this->_createDomDocument($nameSpace, $tag); $newNode = $node->documentElement; @@ -192,23 +192,23 @@ } $newNode = $node->appendChild($this->_dom->createElementNS('uri:' . $codePageName, $tag)); }
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Wbxml/Dtd/ActiveSync.php
Changed
@@ -19,39 +19,39 @@ class Syncroton_Wbxml_Dtd_ActiveSync { - const CODEPAGE_AIRSYNC = 0; - const CODEPAGE_CONTACTS = 1; - const CODEPAGE_EMAIL = 2; - const CODEPAGE_AIRNOTIFY = 3; - const CODEPAGE_CALENDAR = 4; - const CODEPAGE_MOVE = 5; - const CODEPAGE_ITEMESTIMATE = 6; - const CODEPAGE_FOLDERHIERARCHY = 7; - const CODEPAGE_MEETINGRESPONSE = 8; - const CODEPAGE_TASKS = 9; - const CODEPAGE_RESOLVERECIPIENTS = 10; - const CODEPAGE_VALIDATECERT = 11; - const CODEPAGE_CONTACTS2 = 12; - const CODEPAGE_PING = 13; - const CODEPAGE_PROVISION = 14; - const CODEPAGE_SEARCH = 15; - const CODEPAGE_GAL = 16; - const CODEPAGE_AIRSYNCBASE = 17; - const CODEPAGE_SETTINGS = 18; - const CODEPAGE_DOCUMENTLIBRARY = 19; - const CODEPAGE_ITEMOPERATIONS = 20; - const CODEPAGE_COMPOSEMAIL = 21; - const CODEPAGE_EMAIL2 = 22; - const CODEPAGE_NOTES = 23; - const CODEPAGE_RIGHTSMANAGEMENT = 24; - + public const CODEPAGE_AIRSYNC = 0; + public const CODEPAGE_CONTACTS = 1; + public const CODEPAGE_EMAIL = 2; + public const CODEPAGE_AIRNOTIFY = 3; + public const CODEPAGE_CALENDAR = 4; + public const CODEPAGE_MOVE = 5; + public const CODEPAGE_ITEMESTIMATE = 6; + public const CODEPAGE_FOLDERHIERARCHY = 7; + public const CODEPAGE_MEETINGRESPONSE = 8; + public const CODEPAGE_TASKS = 9; + public const CODEPAGE_RESOLVERECIPIENTS = 10; + public const CODEPAGE_VALIDATECERT = 11; + public const CODEPAGE_CONTACTS2 = 12; + public const CODEPAGE_PING = 13; + public const CODEPAGE_PROVISION = 14; + public const CODEPAGE_SEARCH = 15; + public const CODEPAGE_GAL = 16; + public const CODEPAGE_AIRSYNCBASE = 17; + public const CODEPAGE_SETTINGS = 18; + public const CODEPAGE_DOCUMENTLIBRARY = 19; + public const CODEPAGE_ITEMOPERATIONS = 20; + public const CODEPAGE_COMPOSEMAIL = 21; + public const CODEPAGE_EMAIL2 = 22; + public const CODEPAGE_NOTES = 23; + public const CODEPAGE_RIGHTSMANAGEMENT = 24; + /** * variable to hold currently active codepage * * @var Syncroton_Wbxml_Dtd_ActiveSync_Abstract */ protected $_currentCodePage; - + /** * the constructor * @@ -60,17 +60,17 @@ { $this->_currentCodePage = new Syncroton_Wbxml_Dtd_ActiveSync_CodePage0(); } - + /** * returns reference to current codepage * * @return Syncroton_Wbxml_Dtd_ActiveSync_Abstract */ - public function getCurrentCodePage() + public function getCurrentCodePage() { return $this->_currentCodePage; } - + /** * switch to another codepage * @@ -80,12 +80,12 @@ public function switchCodePage($_codePageId) { $className = 'Syncroton_Wbxml_Dtd_ActiveSync_CodePage' . $_codePageId; - + $this->_currentCodePage = new $className(); - + return $this->_currentCodePage; } - + /** * get initial dom document * @@ -95,16 +95,16 @@ { // Creates an instance of the DOMImplementation class $imp = new DOMImplementation(); - + // Creates a DOMDocumentType instance $dtd = $imp->createDocumentType('AirSync', "-//AIRSYNC//DTD AirSync//EN", "http://www.microsoft.com/"); // Creates a DOMDocument instance $dom = $imp->createDocument($_nameSpace, $_tag, $dtd); - + $dom->encoding = 'utf-8'; $dom->formatOutput = false; - + return $dom; } -} +}
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Wbxml/Dtd/ActiveSync/Abstract.php
Changed
@@ -16,49 +16,49 @@ * @package Wbxml * @subpackage ActiveSync */ - + abstract class Syncroton_Wbxml_Dtd_ActiveSync_Abstract { /** * codepage number * - * @var integer + * @var ?integer */ - protected $_codePageNumber = NULL; - + protected $_codePageNumber = null; + /** * codepage name * - * @var string + * @var ?string */ - protected $_codePageName = NULL; + protected $_codePageName = null; /** * document page identifier * not needed for ActiveSync * - * @var integer + * @var ?integer */ - protected $_dpi = NULL; - + protected $_dpi = null; + /** * mapping of tags to id's * * @var array */ - protected $_tags = array(); - + protected $_tags = ; + /** * return document page identifier * is always NULL for activesync * - * @return unknown + * @return int|null */ public function getDPI() { return $this->_dpi; } - + /** * get codepage name * @@ -68,7 +68,7 @@ { return $this->_codePageName; } - + /** * get namespace identifier * @@ -78,7 +78,7 @@ { return 'uri:' . $this->_codePageName; } - + /** * get tag identifier * @@ -94,21 +94,21 @@ return $this->_tags$_tag; } - + /** * return tag by given identity * - * @param unknown_type $_identity - * @return unknown + * @param int $_identity + * @return mixed */ public function getTag($_identity) { $tag = array_search($_identity, $this->_tags); - + if($tag === false) { throw new Syncroton_Wbxml_Exception("identity $_identity not found"); } - + return $tag; } -} \ No newline at end of file +}
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Wbxml/Dtd/ActiveSync/CodePage0.php
Changed
@@ -15,14 +15,14 @@ * @package Wbxml * @subpackage ActiveSync */ - + class Syncroton_Wbxml_Dtd_ActiveSync_CodePage0 extends Syncroton_Wbxml_Dtd_ActiveSync_Abstract { protected $_codePageNumber = 0; - + protected $_codePageName = 'AirSync'; - - protected $_tags = array( + + protected $_tags = 'Sync' => 0x05, 'Responses' => 0x06, 'Add' => 0x07, @@ -59,6 +59,6 @@ 'Partial' => 0x26, 'ConversationMode' => 0x27, 'MaxItems' => 0x28, - 'HeartbeatInterval' => 0x29 - ); -} \ No newline at end of file + 'HeartbeatInterval' => 0x29, + ; +}
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Wbxml/Dtd/ActiveSync/CodePage1.php
Changed
@@ -15,14 +15,14 @@ * @package Wbxml * @subpackage ActiveSync */ - + class Syncroton_Wbxml_Dtd_ActiveSync_CodePage1 extends Syncroton_Wbxml_Dtd_ActiveSync_Abstract { protected $_codePageNumber = 1; - + protected $_codePageName = 'Contacts'; - - protected $_tags = array( + + protected $_tags = 'Anniversary' => 0x05, 'AssistantName' => 0x06, 'AssistantPhoneNumber' => 0x07, @@ -80,6 +80,6 @@ 'Rtf' => 0x3b, 'Picture' => 0x3c, 'Alias' => 0x3d, - 'WeightedRank' => 0x3e - ); -} \ No newline at end of file + 'WeightedRank' => 0x3e, + ; +}
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Wbxml/Dtd/ActiveSync/CodePage10.php
Changed
@@ -15,14 +15,14 @@ * @package Wbxml * @subpackage ActiveSync */ - + class Syncroton_Wbxml_Dtd_ActiveSync_CodePage10 extends Syncroton_Wbxml_Dtd_ActiveSync_Abstract { protected $_codePageNumber = 10; - + protected $_codePageName = 'ResolveRecipients'; - - protected $_tags = array( + + protected $_tags = 'ResolveRecipients' => 0x05, 'Response' => 0x06, 'Status' => 0x07, @@ -47,6 +47,6 @@ 'Picture' => 0x1a, 'MaxSize' => 0x1b, 'Data' => 0x1c, - 'MaxPictures' => 0x1d - ); -} \ No newline at end of file + 'MaxPictures' => 0x1d, + ; +}
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Wbxml/Dtd/ActiveSync/CodePage11.php
Changed
@@ -15,19 +15,19 @@ * @package Wbxml * @subpackage ActiveSync */ - + class Syncroton_Wbxml_Dtd_ActiveSync_CodePage11 extends Syncroton_Wbxml_Dtd_ActiveSync_Abstract { protected $_codePageNumber = 11; - + protected $_codePageName = 'ValidateCert'; - - protected $_tags = array( + + protected $_tags = 'ValidateCert' => 0x05, 'Certificates' => 0x06, 'Certificate' => 0x07, 'CertificateChain' => 0x08, 'CheckCRL' => 0x09, - 'Status' => 0x0a - ); -} \ No newline at end of file + 'Status' => 0x0a, + ; +}
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Wbxml/Dtd/ActiveSync/CodePage12.php
Changed
@@ -15,14 +15,14 @@ * @package Wbxml * @subpackage ActiveSync */ - + class Syncroton_Wbxml_Dtd_ActiveSync_CodePage12 extends Syncroton_Wbxml_Dtd_ActiveSync_Abstract { protected $_codePageNumber = 12; - + protected $_codePageName = 'Contacts2'; - - protected $_tags = array( + + protected $_tags = 'CustomerId' => 0x05, 'GovernmentId' => 0x06, 'IMAddress' => 0x07, @@ -32,6 +32,6 @@ 'CompanyMainPhone' => 0x0b, 'AccountName' => 0x0c, 'NickName' => 0x0d, - 'MMS' => 0x0e - ); -} \ No newline at end of file + 'MMS' => 0x0e, + ; +}
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Wbxml/Dtd/ActiveSync/CodePage13.php
Changed
@@ -21,7 +21,7 @@ protected $_codePageName = 'Ping'; - protected $_tags = array( + protected $_tags = 'Ping' => 0x05, 'AutdState' => 0x06, //unused 'Status' => 0x07, @@ -30,6 +30,6 @@ 'Folder' => 0x0a, 'Id' => 0x0b, 'Class' => 0x0c, - 'MaxFolders' => 0x0d - ); + 'MaxFolders' => 0x0d, + ; }
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Wbxml/Dtd/ActiveSync/CodePage14.php
Changed
@@ -16,14 +16,14 @@ * @subpackage ActiveSync * @todo add missing tags */ - + class Syncroton_Wbxml_Dtd_ActiveSync_CodePage14 extends Syncroton_Wbxml_Dtd_ActiveSync_Abstract { protected $_codePageNumber = 14; - + protected $_codePageName = 'Provision'; - - protected $_tags = array( + + protected $_tags = 'Provision' => 0x05, 'Policies' => 0x06, 'Policy' => 0x07, @@ -78,5 +78,5 @@ 'ApplicationName' => 0x38, 'ApprovedApplicationList' => 0x39, 'Hash' => 0x3a, - ); + ; }
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Wbxml/Dtd/ActiveSync/CodePage15.php
Changed
@@ -15,14 +15,14 @@ * @package Wbxml * @subpackage ActiveSync */ - + class Syncroton_Wbxml_Dtd_ActiveSync_CodePage15 extends Syncroton_Wbxml_Dtd_ActiveSync_Abstract { protected $_codePageNumber = 15; - + protected $_codePageName = 'Search'; - - protected $_tags = array( + + protected $_tags = 'Search' => 0x05, 'Store' => 0x07, 'Name' => 0x08, @@ -51,6 +51,6 @@ 'ConversationId' => 0x20, 'Picture' => 0x21, 'MaxSize' => 0x22, - 'MaxPictures' => 0x23 - ); -} \ No newline at end of file + 'MaxPictures' => 0x23, + ; +}
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Wbxml/Dtd/ActiveSync/CodePage16.php
Changed
@@ -15,14 +15,14 @@ * @package Wbxml * @subpackage ActiveSync */ - + class Syncroton_Wbxml_Dtd_ActiveSync_CodePage16 extends Syncroton_Wbxml_Dtd_ActiveSync_Abstract { protected $_codePageNumber = 16; - + protected $_codePageName = 'GAL'; - - protected $_tags = array( + + protected $_tags = 'DisplayName' => 0x05, 'Phone' => 0x06, 'Office' => 0x07, @@ -37,5 +37,5 @@ 'Picture' => 0x10, 'Status' => 0x11, 'Data' => 0x12, - ); -} \ No newline at end of file + ; +}
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Wbxml/Dtd/ActiveSync/CodePage17.php
Changed
@@ -15,14 +15,14 @@ * @package Wbxml * @subpackage ActiveSync */ - + class Syncroton_Wbxml_Dtd_ActiveSync_CodePage17 extends Syncroton_Wbxml_Dtd_ActiveSync_Abstract { protected $_codePageNumber = 17; - + protected $_codePageName = 'AirSyncBase'; - - protected $_tags = array( + + protected $_tags = 'BodyPreference' => 0x05, 'Type' => 0x06, 'TruncationSize' => 0x07, @@ -45,5 +45,5 @@ 'BodyPartReference' => 0x19, 'BodyPart' => 0x1a, 'Status' => 0x1b, - ); -} \ No newline at end of file + ; +}
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Wbxml/Dtd/ActiveSync/CodePage18.php
Changed
@@ -15,14 +15,14 @@ * @package Wbxml * @subpackage ActiveSync */ - + class Syncroton_Wbxml_Dtd_ActiveSync_CodePage18 extends Syncroton_Wbxml_Dtd_ActiveSync_Abstract { protected $_codePageNumber = 18; - + protected $_codePageName = 'Settings'; - - protected $_tags = array( + + protected $_tags = 'Settings' => 0x05, 'Status' => 0x06, 'Get' => 0x07, @@ -61,5 +61,5 @@ 'UserDisplayName' => 0x28, 'SendDisabled' => 0x29, 'RightsManagementInformation' => 0x2b, - ); + ; }
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Wbxml/Dtd/ActiveSync/CodePage19.php
Changed
@@ -15,14 +15,14 @@ * @package Wbxml * @subpackage ActiveSync */ - + class Syncroton_Wbxml_Dtd_ActiveSync_CodePage19 extends Syncroton_Wbxml_Dtd_ActiveSync_Abstract { protected $_codePageNumber = 19; - + protected $_codePageName = 'DocumentLibrary'; - - protected $_tags = array( + + protected $_tags = 'LinkId' => 0x05, 'DisplayName' => 0x06, 'IsFolder' => 0x07, @@ -30,6 +30,6 @@ 'LastModifiedDate' => 0x09, 'IsHidden' => 0x0a, 'ContentLength' => 0x0b, - 'ContentType' => 0x0c - ); -} \ No newline at end of file + 'ContentType' => 0x0c, + ; +}
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Wbxml/Dtd/ActiveSync/CodePage2.php
Changed
@@ -15,14 +15,14 @@ * @package Wbxml * @subpackage ActiveSync */ - + class Syncroton_Wbxml_Dtd_ActiveSync_CodePage2 extends Syncroton_Wbxml_Dtd_ActiveSync_Abstract { protected $_codePageNumber = 2; - + protected $_codePageName = 'Email'; - - protected $_tags = array( + + protected $_tags = 'Attachment' => 0x05, 'Attachments' => 0x06, 'AttName' => 0x07, @@ -81,6 +81,6 @@ 'ContentClass' => 0x3c, 'FlagType' => 0x3d, 'CompleteTime' => 0x3e, - 'DisallowNewTimeProposal' => 0x3f - ); -} \ No newline at end of file + 'DisallowNewTimeProposal' => 0x3f, + ; +}
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Wbxml/Dtd/ActiveSync/CodePage20.php
Changed
@@ -15,14 +15,14 @@ * @package Wbxml * @subpackage ActiveSync */ - + class Syncroton_Wbxml_Dtd_ActiveSync_CodePage20 extends Syncroton_Wbxml_Dtd_ActiveSync_Abstract { protected $_codePageNumber = 20; - + protected $_codePageName = 'ItemOperations'; - - protected $_tags = array( + + protected $_tags = 'ItemOperations' => 0x05, 'Fetch' => 0x06, 'Store' => 0x07, @@ -44,5 +44,5 @@ 'DstFldId' => 0x17, 'ConversationId' => 0x18, 'MoveAlways' => 0x19, - ); -} \ No newline at end of file + ; +}
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Wbxml/Dtd/ActiveSync/CodePage21.php
Changed
@@ -15,14 +15,14 @@ * @package Wbxml * @subpackage ActiveSync */ - + class Syncroton_Wbxml_Dtd_ActiveSync_CodePage21 extends Syncroton_Wbxml_Dtd_ActiveSync_Abstract { protected $_codePageNumber = 21; - + protected $_codePageName = 'ComposeMail'; - - protected $_tags = array( + + protected $_tags = 'SendMail' => 0x05, 'SmartForward' => 0x06, 'SmartReply' => 0x07, @@ -37,5 +37,5 @@ 'ClientId' => 0x11, 'Status' => 0x12, 'AccountId' => 0x13, - ); -} \ No newline at end of file + ; +}
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Wbxml/Dtd/ActiveSync/CodePage22.php
Changed
@@ -15,14 +15,14 @@ * @package Wbxml * @subpackage ActiveSync */ - + class Syncroton_Wbxml_Dtd_ActiveSync_CodePage22 extends Syncroton_Wbxml_Dtd_ActiveSync_Abstract { protected $_codePageNumber = 22; - + protected $_codePageName = 'Email2'; - - protected $_tags = array( + + protected $_tags = 'UmCallerID' => 0x05, 'UmUserNotes' => 0x06, 'UmAttDuration' => 0x07, @@ -38,5 +38,5 @@ 'AccountId' => 0x11, 'FirstDayOfWeek' => 0x12, 'MeetingMessageType' => 0x13, - ); -} \ No newline at end of file + ; +}
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Wbxml/Dtd/ActiveSync/CodePage23.php
Changed
@@ -15,18 +15,18 @@ * @package Wbxml * @subpackage ActiveSync */ - + class Syncroton_Wbxml_Dtd_ActiveSync_CodePage23 extends Syncroton_Wbxml_Dtd_ActiveSync_Abstract { protected $_codePageNumber = 23; - + protected $_codePageName = 'Notes'; - - protected $_tags = array( + + protected $_tags = 'Subject' => 0x05, 'MessageClass' => 0x06, 'LastModifiedDate' => 0x07, 'Categories' => 0x08, 'Category' => 0x09, - ); -} \ No newline at end of file + ; +}
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Wbxml/Dtd/ActiveSync/CodePage24.php
Changed
@@ -15,14 +15,14 @@ * @package Wbxml * @subpackage ActiveSync */ - + class Syncroton_Wbxml_Dtd_ActiveSync_CodePage24 extends Syncroton_Wbxml_Dtd_ActiveSync_Abstract { protected $_codePageNumber = 24; - + protected $_codePageName = 'RightsManagement'; - - protected $_tags = array( + + protected $_tags = 'RightsManagementSupport' => 0x05, 'RightsManagementTemplates' => 0x06, 'RightsManagementTemplate' => 0x07, @@ -42,7 +42,7 @@ 'TemplateID' => 0x15, 'TemplateDescription' => 0x16, 'ContentOwner' => 0x17, - 'RemoveRightsManagementDistribution' => 0x18 - ); - -} \ No newline at end of file + 'RemoveRightsManagementDistribution' => 0x18, + ; + +}
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Wbxml/Dtd/ActiveSync/CodePage254.php
Changed
@@ -19,13 +19,13 @@ class Syncroton_Wbxml_Dtd_ActiveSync_CodePage254 extends Syncroton_Wbxml_Dtd_ActiveSync_Abstract { protected $_codePageNumber = 254; - + protected $_codePageName = 'WindowsLive'; - - protected $_tags = array( + + protected $_tags = 'Annotations' => 0x05, 'Annotation' => 0x06, 'Name' => 0x07, - 'Value' => 0x08 - ); -} \ No newline at end of file + 'Value' => 0x08, + ; +}
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Wbxml/Dtd/ActiveSync/CodePage3.php
Changed
@@ -15,14 +15,14 @@ * @package Wbxml * @subpackage ActiveSync */ - + class Syncroton_Wbxml_Dtd_ActiveSync_CodePage3 extends Syncroton_Wbxml_Dtd_ActiveSync_Abstract { protected $_codePageNumber = 3; - + protected $_codePageName = 'AirNotify'; - - protected $_tags = array( + + protected $_tags = 'Notify' => 0x05, 'Notification' => 0x06, 'Version' => 0x07, @@ -41,9 +41,9 @@ 'Id' => 0x14, 'Expiry' => 0x15, 'NotifyGUID' => 0x16, - 'DeivceFriendlyName' => 0x17 - ); + 'DeivceFriendlyName' => 0x17, + ; // attribute page #"Version='1.1'" => 0x05, -} \ No newline at end of file +}
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Wbxml/Dtd/ActiveSync/CodePage4.php
Changed
@@ -15,14 +15,14 @@ * @package Wbxml * @subpackage ActiveSync */ - + class Syncroton_Wbxml_Dtd_ActiveSync_CodePage4 extends Syncroton_Wbxml_Dtd_ActiveSync_Abstract { protected $_codePageNumber = 4; - + protected $_codePageName = 'Calendar'; - - protected $_tags = array( + + protected $_tags = 'Timezone' => 0x05, 'AllDayEvent' => 0x06, 'Attendees' => 0x07, @@ -69,6 +69,6 @@ 'IsLeapMonth' => 0x38, 'FirstDayOfWeek' => 0x39, 'OnlineMeetingConfLink' => 0x3a, - 'OnlineMeetingExternalLink' => 0x3b - ); -} \ No newline at end of file + 'OnlineMeetingExternalLink' => 0x3b, + ; +}
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Wbxml/Dtd/ActiveSync/CodePage5.php
Changed
@@ -15,14 +15,14 @@ * @package Wbxml * @subpackage ActiveSync */ - + class Syncroton_Wbxml_Dtd_ActiveSync_CodePage5 extends Syncroton_Wbxml_Dtd_ActiveSync_Abstract { protected $_codePageNumber = 5; protected $_codePageName = 'Move'; - protected $_tags = array( + protected $_tags = 'MoveItems' => 0x05, 'Move' => 0x06, 'SrcMsgId' => 0x07, @@ -30,6 +30,6 @@ 'DstFldId' => 0x09, 'Response' => 0x0a, 'Status' => 0x0b, - 'DstMsgId' => 0x0c - ); -} \ No newline at end of file + 'DstMsgId' => 0x0c, + ; +}
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Wbxml/Dtd/ActiveSync/CodePage6.php
Changed
@@ -15,14 +15,14 @@ * @package Wbxml * @subpackage ActiveSync */ - + class Syncroton_Wbxml_Dtd_ActiveSync_CodePage6 extends Syncroton_Wbxml_Dtd_ActiveSync_Abstract { protected $_codePageNumber = 6; - + protected $_codePageName = 'ItemEstimate'; - - protected $_tags = array( + + protected $_tags = 'GetItemEstimate' => 0x05, 'Version' => 0x06, 'Collections' => 0x07, @@ -32,6 +32,6 @@ 'DateTime' => 0x0b, 'Estimate' => 0x0c, 'Response' => 0x0d, - 'Status' => 0x0e - ); -} \ No newline at end of file + 'Status' => 0x0e, + ; +}
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Wbxml/Dtd/ActiveSync/CodePage7.php
Changed
@@ -15,14 +15,14 @@ * @package Wbxml * @subpackage ActiveSync */ - + class Syncroton_Wbxml_Dtd_ActiveSync_CodePage7 extends Syncroton_Wbxml_Dtd_ActiveSync_Abstract { protected $_codePageNumber = 7; - + protected $_codePageName = 'FolderHierarchy'; - - protected $_tags = array( + + protected $_tags = 'Folders' => 0x05, 'Folder' => 0x06, 'DisplayName' => 0x07, @@ -42,6 +42,6 @@ 'FolderUpdate' => 0x15, 'FolderSync' => 0x16, 'Count' => 0x17, - 'Version' => 0x18 // not used anymore - ); -} \ No newline at end of file + 'Version' => 0x18, // not used anymore + ; +}
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Wbxml/Dtd/ActiveSync/CodePage8.php
Changed
@@ -15,14 +15,14 @@ * @package Wbxml * @subpackage ActiveSync */ - + class Syncroton_Wbxml_Dtd_ActiveSync_CodePage8 extends Syncroton_Wbxml_Dtd_ActiveSync_Abstract { protected $_codePageNumber = 8; - + protected $_codePageName = 'MeetingResponse'; - - protected $_tags = array( + + protected $_tags = 'CalendarId' => 0x05, 'CollectionId' => 0x06, 'MeetingResponse' => 0x07, @@ -32,6 +32,6 @@ 'Status' => 0x0b, 'UserResponse' => 0x0c, 'Version' => 0x0d, // not used anymore - 'InstanceId' => 0x0e - ); -} \ No newline at end of file + 'InstanceId' => 0x0e, + ; +}
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Wbxml/Dtd/ActiveSync/CodePage9.php
Changed
@@ -15,14 +15,14 @@ * @package Wbxml * @subpackage ActiveSync */ - + class Syncroton_Wbxml_Dtd_ActiveSync_CodePage9 extends Syncroton_Wbxml_Dtd_ActiveSync_Abstract { protected $_codePageNumber = 9; - + protected $_codePageName = 'Tasks'; - - protected $_tags = array( + + protected $_tags = 'Body' => 0x05, 'BodySize' => 0x06, 'BodyTruncated' => 0x07, @@ -57,5 +57,5 @@ 'CalendarType' => 0x24, 'IsLeapMonth' => 0x25, 'FirstDayOfWeek' => 0x26, - ); -} \ No newline at end of file + ; +}
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Wbxml/Dtd/Exception/CodePageNotFound.php
Changed
@@ -16,7 +16,7 @@ * @package Wbxml * @subpackage Wbxml */ - - class Syncroton_Wbxml_Dtd_Exception_CodePageNotFound extends Exception - { - } \ No newline at end of file + +class Syncroton_Wbxml_Dtd_Exception_CodePageNotFound extends Exception +{ +}
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Wbxml/Dtd/Factory.php
Changed
@@ -16,34 +16,28 @@ * @package Wbxml * @subpackage Wbxml */ - class Syncroton_Wbxml_Dtd_Factory { - const ACTIVESYNC='AirSync'; - - const SYNCML='SyncML'; - + public const ACTIVESYNC = 'AirSync'; + public const SYNCML = 'SyncML'; + /** * factory function to return a selected contacts backend class * * @param string $type - * @return Addressbook_Backend_Interface + * @return Syncroton_Wbxml_Dtd_ActiveSync */ - static public function factory ($_type) + public static function factory($type) { - switch ($_type) { + switch ($type) { case self::ACTIVESYNC: $instance = new Syncroton_Wbxml_Dtd_ActiveSync(); break; - - case self::SYNCML: - $instance = new Syncroton_Wbxml_Dtd_Syncml(); - break; - + default: - throw new Syncroton_Wbxml_Exception('unsupported DTD: ' . $_type); - break; + throw new Syncroton_Wbxml_Exception('unsupported DTD: ' . $type); } + return $instance; } -} +}
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Wbxml/Dtd/Syncml
Deleted
-(directory)
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Wbxml/Dtd/Syncml.php
Deleted
@@ -1,42 +0,0 @@ -<?php -/** - * Syncroton - * - * @package Wbxml - * @subpackage Syncml - * @license http://www.tine20.org/licenses/lgpl.html LGPL Version 3 - * @copyright Copyright (c) 2008-2009 Metaways Infosystems GmbH (http://www.metaways.de) - * @author Lars Kneschke <l.kneschke@metaways.de> - * @version $Id:Factory.php 4968 2008-10-17 09:09:33Z l.kneschke@metaways.de $ - */ - -/** - * class documentation - * - * @package Wbxml - * @subpackage Syncml - */ - -class Syncroton_Wbxml_Dtd_Syncml -{ - /** - * factory function to return a selected contacts backend class - * - * @param string $type - * @return Addressbook_Backend_Interface - */ - static public function factory ($_type) - { - switch ($_type) { - case 'syncml:syncml1.1': - case 'syncml:syncml1.2': - case 'syncml:metinf1.1': - case 'syncml:metinf1.2': - case 'syncml:devinf1.1': - case 'syncml:devinf1.2': - throw new Syncroton_Wbxml_Exception('unsupported DTD: ' . $_type); - break; - } - return $instance; - } -}
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Wbxml/Dtd/Syncml/Abstract.php
Deleted
@@ -1,103 +0,0 @@ -<?php -/** - * Syncroton - * - * @package Wbxml - * @subpackage Syncml - * @license http://www.tine20.org/licenses/lgpl.html LGPL Version 3 - * @copyright Copyright (c) 2008-2009 Metaways Infosystems GmbH (http://www.metaways.de) - * @author Lars Kneschke <l.kneschke@metaways.de> - * @version $Id:Abstract.php 4968 2008-10-17 09:09:33Z l.kneschke@metaways.de $ - */ - -/** - * class documentation - * - * @package Wbxml - * @subpackage Syncml - */ - -class Syncroton_Wbxml_Dtd_Syncml_Abstract -{ - protected $_tags; - - protected $_identity; - - protected $_codePages; - - protected $_currentCodePage; - - public function __construct($_initialCodePage = 0x00) - { - $this->switchCodePage($_initialCodePage); - } - - /** - * switch codepage - * - * @param integer $_id id of the codePage - * @return array - */ - public function switchCodePage($_id) - { - if(!isset($this->_codePages$_id)) { - throw new Syncroton_Wbxml_Dtd_Exception_CodePageNotFound('invalid codePage id: ' . $_id); - } - $this->_currentCodePage = $_id; - $this->_tags = $this->_codePages$this->_currentCodePage'tags'; - $this->_identity = array_flip($this->_tags); - - return $this->_codePages$this->_currentCodePage; - } - - /** - * get currently active codepage - * - * @return array - */ - public function getCurrentCodePage() - { - return $this->_codePages$this->_currentCodePage; - } - - public function getTag($_identity) - { - if(!isset($this->_identity$_identity)) { - throw new Syncroton_Wbxml_Exception("identity $_identity not found"); - } - - return $this->_identity$_identity; - } - - public function getIdentity($_tag) - { - if(!isset($this->_tags$_tag)) { - var_dump($this->_tags); - throw new Syncroton_Wbxml_Exception("tag $_tag not found"); - } - - return $this->_tags$_tag; - } - - /** - * switch codepage by urn - * - * @param string $_urn - * @return array - */ - public function switchCodePageByUrn($_urn) - { - $codePageNumber = NULL; - foreach($this->_codePages as $codePage) { - if($codePage'urn' == $_urn) { - $codePageNumber = $codePage'codePageNumber'; - } - } - - if($codePageNumber === NULL) { - throw new Syncroton_Wbxml_Dtd_Exception_CodePageNotFound("codePage with URN $_urn not found"); - } - - return $this->switchCodePage($codePageNumber); - } -} \ No newline at end of file
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Wbxml/Dtd/Syncml/DevInfo11.php
Deleted
@@ -1,71 +0,0 @@ -<?php -/** - * Syncroton - * - * @package Wbxml - * @subpackage Syncml - * @license http://www.tine20.org/licenses/lgpl.html LGPL Version 3 - * @copyright Copyright (c) 2008-2009 Metaways Infosystems GmbH (http://www.metaways.de) - * @author Lars Kneschke <l.kneschke@metaways.de> - * @version $Id:DevInfo11.php 4968 2008-10-17 09:09:33Z l.kneschke@metaways.de $ - */ - -/** - * class documentation - * - * @package Wbxml - * @subpackage Syncml - */ - -class Syncroton_Wbxml_Dtd_Syncml_DevInfo11 extends Syncroton_Wbxml_Dtd_Syncml_Abstract -{ - protected $_codePages = array( - 0x00 => array( - 'codePageNumber'=> 0x00, - 'dtdname' => 'DevInf', - 'dpi' => '-//SYNCML//DTD DevInf 1.1//EN', - 'url' => 'http://www.syncml.org/docs/devinf_v11_20020215.dtd', - 'urn' => 'syncml:devinf1.1', - 'tags' => array( - "CTCap" => 0x05, - "CTType" => 0x06, - "DataStore" => 0x07, - "DataType" => 0x08, - "DevID" => 0x09, - "DevInf" => 0x0a, - "DevTyp" => 0x0b, - "DisplayName" => 0x0c, - "DSMem" => 0x0d, - "Ext" => 0x0e, - "FwV" => 0x0f, - "HwV" => 0x10, - "Man" => 0x11, - "MaxGUIDSize" => 0x12, - "MaxID" => 0x13, - "MaxMem" => 0x14, - "Mod" => 0x15, - "OEM" => 0x16, - "ParamName" => 0x17, - "PropName" => 0x18, - "Rx" => 0x19, - "Rx-Pref" => 0x1a, - "SharedMem" => 0x1b, - "Size" => 0x1c, - "SourceRef" => 0x1d, - "SwV" => 0x1e, - "SyncCap" => 0x1f, - "SyncType" => 0x20, - "Tx" => 0x21, - "Tx-Pref" => 0x22, - "ValEnum" => 0x23, - "VerCT" => 0x24, - "VerDTD" => 0x25, - "XNam" => 0x26, - "XVal" => 0x27, - "UTC" => 0x28, - "SupportNumberOfChanges"=> 0x29, - "SupportLargeObjs" => 0x2a - ) - ) - ); -} \ No newline at end of file
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Wbxml/Dtd/Syncml/DevInfo12.php
Deleted
@@ -1,80 +0,0 @@ -<?php -/** - * Syncroton - * - * @package Wbxml - * @subpackage Syncml - * @license http://www.tine20.org/licenses/lgpl.html LGPL Version 3 - * @copyright Copyright (c) 2008-2009 Metaways Infosystems GmbH (http://www.metaways.de) - * @author Lars Kneschke <l.kneschke@metaways.de> - * @version $Id:DevInfo12.php 4968 2008-10-17 09:09:33Z l.kneschke@metaways.de $ - */ - -/** - * class documentation - * - * @package Wbxml - * @subpackage Syncml - */ - -class Syncroton_Wbxml_Dtd_Syncml_DevInfo12 extends Syncroton_Wbxml_Dtd_Syncml_Abstract -{ - protected $_codePages = array( - 0x00 => array( - 'codePageNumber'=> 0x00, - 'dtdname' => 'DevInf', - 'dpi' => '-//OMA//DTD SYNCML-DEVINF 1.2//EN', - 'url' => 'http://www.openmobilealliance.org/tech/DTD/OMA-SyncML-Device_Information-DTD-1.2.dtd', - 'urn' => 'syncml:devinf1.2', - 'tags' => array( - "CTCap" => 0x05, - "CTType" => 0x06, - "DataStore" => 0x07, - "DataType" => 0x08, - "DevID" => 0x09, - "DevInf" => 0x0a, - "DevTyp" => 0x0b, - "DisplayName" => 0x0c, - "DSMem" => 0x0d, - "Ext" => 0x0e, - "FwV" => 0x0f, - "HwV" => 0x10, - "Man" => 0x11, - "MaxGUIDSize" => 0x12, - "MaxID" => 0x13, - "MaxMem" => 0x14, - "Mod" => 0x15, - "OEM" => 0x16, - "ParamName" => 0x17, - "PropName" => 0x18, - "Rx" => 0x19, - "Rx-Pref" => 0x1a, - "SharedMem" => 0x1b, - "Size" => 0x1c, - "SourceRef" => 0x1d, - "SwV" => 0x1e, - "SyncCap" => 0x1f, - "SyncType" => 0x20, - "Tx" => 0x21, - "Tx-Pref" => 0x22, - "ValEnum" => 0x23, - "VerCT" => 0x24, - "VerDTD" => 0x25, - "XNam" => 0x26, - "XVal" => 0x27, - "UTC" => 0x28, - "SupportNumberOfChanges"=> 0x29, - "SupportLargeObjs" => 0x2a, - "Property" => 0x2b, - "PropParam" => 0x2c, - "MaxOccur" => 0x2d, - "NoTruncate" => 0x2e, - "Filter-Rx" => 0x30, - "FilterCap" => 0x31, - "FilterKeyword" => 0x32, - "FieldLevel" => 0x33, - "SupportHierarchicalSync"=> 0x34 - ) - ) - ); -} \ No newline at end of file
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Wbxml/Dtd/Syncml/Syncml11.php
Deleted
@@ -1,107 +0,0 @@ -<?php -/** - * Syncroton - * - * @package Wbxml - * @subpackage Syncml - * @license http://www.tine20.org/licenses/lgpl.html LGPL Version 3 - * @copyright Copyright (c) 2008-2009 Metaways Infosystems GmbH (http://www.metaways.de) - * @author Lars Kneschke <l.kneschke@metaways.de> - * @version $Id:Syncml11.php 4968 2008-10-17 09:09:33Z l.kneschke@metaways.de $ - */ - -/** - * class documentation - * - * @package Wbxml - * @subpackage Syncml - */ - -class Syncroton_Wbxml_Dtd_Syncml_Syncml11 extends Syncroton_Wbxml_Dtd_Syncml_Abstract -{ - protected $_codePages = array( - 0x00 => array( - 'codePageNumber'=> 0x00, - 'dtdname' => 'SyncML', - 'dpi' => '-//SYNCML//DTD SyncML 1.1//EN', - 'url' => "http://www.syncml.org/docs/syncml_represent_v11_20020213.dtd", - 'urn' => 'syncml:syncml1.1', - 'tags' => array( - 'Add' => 0x05, - 'Alert' => 0x06, - 'Archive' => 0x07, - 'Atomic' => 0x08, - 'Chal' => 0x09, - 'Cmd' => 0x0a, - 'CmdID' => 0x0b, - 'CmdRef' => 0x0c, - 'Copy' => 0x0d, - 'Cred' => 0x0e, - 'Data' => 0x0f, - 'Delete' => 0x10, - 'Exec' => 0x11, - 'Final' => 0x12, - 'Get' => 0x13, - 'Item' => 0x14, - 'Lang' => 0x15, - 'LocName' => 0x16, - 'LocURI' => 0x17, - 'Map' => 0x18, - 'MapItem' => 0x19, - 'Meta' => 0x1a, - 'MsgID' => 0x1b, - 'MsgRef' => 0x1c, - 'NoResp' => 0x1d, - 'NoResults' => 0x1e, - 'Put' => 0x1f, - 'Replace' => 0x20, - 'RespURI' => 0x21, - 'Results' => 0x22, - 'Search' => 0x23, - 'Sequence' => 0x24, - 'SessionID' => 0x25, - 'SftDel' => 0x26, - 'Source' => 0x27, - 'SourceRef' => 0x28, - 'Status' => 0x29, - 'Sync' => 0x2a, - 'SyncBody' => 0x2b, - 'SyncHdr' => 0x2c, - 'SyncML' => 0x2d, - 'Target' => 0x2e, - 'TargetRef' => 0x2f, - 'Reserved for future use.' => 0x30, - 'VerDTD' => 0x31, - 'VerProto' => 0x32, - 'NumberOfChanges' => 0x33, - 'MoreData' => 0x34 - ) - ), - 0x01 => array( - 'codePageNumber'=> 0x01, - 'dtdname' => 'MetInf', - 'dpi' => '-//SYNCML//DTD MetInf 1.1//EN', - 'url' => 'http://www.syncml.org/docs/syncml_metinf_v11_20020215.dtd ', - 'urn' => 'syncml:metinf1.1', - 'tags' => array( - 'Anchor' => 0x05, - 'EMI' => 0x06, - 'Format' => 0x07, - 'FreeID' => 0x08, - 'FreeMem' => 0x09, - 'Last' => 0x0a, - 'Mark' => 0x0b, - 'MaxMsgSize' => 0x0c, - 'Mem' => 0x0d, - 'MetInf' => 0x0e, - 'Next' => 0x0f, - 'NextNonce' => 0x10, - 'SharedMem' => 0x11, - 'Size' => 0x12, - 'Type' => 0x13, - 'Version' => 0x14, - 'MaxObjSize' => 0x15 - ) - ) - ); -} \ No newline at end of file
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Wbxml/Dtd/Syncml/Syncml12.php
Deleted
@@ -1,122 +0,0 @@ -<?php -/** - * Syncroton - * - * @package Wbxml - * @subpackage Syncml - * @license http://www.tine20.org/licenses/lgpl.html LGPL Version 3 - * @copyright Copyright (c) 2008-2009 Metaways Infosystems GmbH (http://www.metaways.de) - * @author Lars Kneschke <l.kneschke@metaways.de> - * @version $Id:Syncml12.php 4968 2008-10-17 09:09:33Z l.kneschke@metaways.de $ - */ - -/** - * class documentation - * - * @package Wbxml - * @subpackage Syncml - */ - -class Syncroton_Wbxml_Dtd_Syncml_Syncml12 extends Syncroton_Wbxml_Dtd_Syncml_Abstract -{ - - /** - * section 8.2 - * - * @var array - */ - protected $_codePages = array( - 0x00 => array( - 'codePageNumber'=> 0x00, - 'dtdname' => 'SyncML', - 'dpi' => '-//SYNCML//DTD SyncML 1.2//EN', - 'url' => 'http://www.openmobilealliance.org/tech/DTD/OMA-TS-SyncML_RepPro_DTD-V1_2.dtd', - 'urn' => 'SYNCML:SYNCML1.2', - 'tags' => array( - 'Add' => 0x05, - 'Alert' => 0x06, - 'Archive' => 0x07, - 'Atomic' => 0x08, - 'Chal' => 0x09, - 'Cmd' => 0x0a, - 'CmdID' => 0x0b, - 'CmdRef' => 0x0c, - 'Copy' => 0x0d, - 'Cred' => 0x0e, - 'Data' => 0x0f, - 'Delete' => 0x10, - 'Exec' => 0x11, - 'Final' => 0x12, - 'Get' => 0x13, - 'Item' => 0x14, - 'Lang' => 0x15, - 'LocName' => 0x16, - 'LocURI' => 0x17, - 'Map' => 0x18, - 'MapItem' => 0x19, - 'Meta' => 0x1a, - 'MsgID' => 0x1b, - 'MsgRef' => 0x1c, - 'NoResp' => 0x1d, - 'NoResults' => 0x1e, - 'Put' => 0x1f, - 'Replace' => 0x20, - 'RespURI' => 0x21, - 'Results' => 0x22, - 'Search' => 0x23, - 'Sequence' => 0x24, - 'SessionID' => 0x25, - 'SftDel' => 0x26, - 'Source' => 0x27, - 'SourceRef' => 0x28, - 'Status' => 0x29, - 'Sync' => 0x2a, - 'SyncBody' => 0x2b, - 'SyncHdr' => 0x2c, - 'SyncML' => 0x2d, - 'Target' => 0x2e, - 'TargetRef' => 0x2f, - 'Reserved for future use.' => 0x30, - 'VerDTD' => 0x31, - 'VerProto' => 0x32, - 'NumberOfChanges' => 0x33, - 'MoreData' => 0x34, - 'Field' => 0x35, - 'Filter' => 0x36, - 'Record' => 0x37, - 'FilterType' => 0x38, - 'SourceParent' => 0x39, - 'TargetParent' => 0x3a, - 'Move' => 0x3b, - 'Correlator' => 0x3c - ) - ), - 0x01 => array( - 'codePageNumber'=> 0x01, - 'dtdname' => 'MetInf', - 'dpi' => '-//OMA//DTD SYNCML-METINF 1.2//EN', - 'url' => 'http://www.openmobilealliance.org/tech/DTD/OMA-TS-SyncML_MetaInfo_DTD-V1_2.dtd', - 'urn' => 'syncml:metinf1.2', - 'tags' => array( - 'Anchor' => 0x05, - 'EMI' => 0x06, - 'Format' => 0x07, - 'FreeID' => 0x08, - 'FreeMem' => 0x09, - 'Last' => 0x0a, - 'Mark' => 0x0b, - 'MaxMsgSize' => 0x0c, - 'Mem' => 0x0d, - 'MetInf' => 0x0e, - 'Next' => 0x0f, - 'NextNonce' => 0x10, - 'SharedMem' => 0x11, - 'Size' => 0x12, - 'Type' => 0x13, - 'Version' => 0x14, - 'MaxObjSize' => 0x15, - 'FieldLevel' => 0x16 - ) - ) - ); -} \ No newline at end of file
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Wbxml/Encoder.php
Changed
@@ -16,22 +16,22 @@ * @package Wbxml * @subpackage Wbxml */ - + class Syncroton_Wbxml_Encoder extends Syncroton_Wbxml_Abstract { /** * count level of tags * - * @var string + * @var int */ protected $_level = 0; - + /** * the constructor * * @param resource $_stream - * @param string $_charSet - * @param integer $_version + * @param string $_charSet + * @param int $_version */ public function __construct($_stream, $_charSet = 'UTF-8', $_version = 2) { @@ -43,18 +43,18 @@ /** * initialize internal variables and write wbxml header to stream * - * @param string $_urn + * @param DOMDocument $_dom * @todo check if dpi > 0, instead checking the urn */ protected function _initialize($_dom) { $this->_dtd = Syncroton_Wbxml_Dtd_Factory::factory($_dom->doctype->name); $this->_codePage = $this->_dtd->getCurrentCodePage(); - + // the WBXML version $this->_writeByte($this->_version); - - if($this->_codePage->getDPI() === NULL) { + + if($this->_codePage->getDPI() === null) { // the document public identifier $this->_writeMultibyteUInt(1); } else { @@ -63,22 +63,22 @@ $this->_writeMultibyteUInt(0); // the offset of the DPI in the string table $this->_writeByte(0); - } - + } + // write the charSet $this->_writeCharSet($this->_charSet); - - if($this->_codePage->getDPI() === NULL) { + + if($this->_codePage->getDPI() === null) { // the length of the string table $this->_writeMultibyteUInt(0); } else { // the length of the string table $this->_writeMultibyteUInt(strlen($this->_codePage->getDPI())); // the dpi - $this->_writeString($this->_codePage->getDPI()); - } + $this->_writeString($this->_codePage->getDPI()); + } } - + /** * write charset to stream * @@ -91,31 +91,28 @@ case 'UTF-8': $this->_writeMultibyteUInt(106); break; - + default: throw new Syncroton_Wbxml_Exception('unsuported charSet ' . strtoupper($_charSet)); - break; } - } - + /** * start encoding of xml to wbxml * - * @param string $_xml the xml string - * @return resource stream + * @param DOMDocument $_dom the DOM document */ public function encode(DOMDocument $_dom) { $_dom->formatOutput = false; - + $this->_initialize($_dom); $this->_traverseDom($_dom); } private function getAttributes($node) { - $attributes = array(); + $attributes = ; if ($node->attributes) { for ($i = 0; $i < $node->attributes->length; ++$i) { $attributes$node->attributes->item($i)->name = $node->attributes->item($i)->value; @@ -124,7 +121,8 @@ return $attributes; } - private function writeNode($node, $withContent = false, $data = null) { + private function writeNode($node, $withContent = false, $data = null) + { if($this->_codePage->getNameSpace() != $node->namespaceURI) { $this->_switchCodePage($node->namespaceURI); } @@ -172,14 +170,15 @@ /** * strip uri: from nameSpace * - * @param unknown_type $_nameSpace - * @return unknown + * @param string $_nameSpace + * + * @return string */ protected function _stripNameSpace($_nameSpace) { return substr($_nameSpace, 4); } - + /** * writes tag with data to stream * @@ -188,36 +187,36 @@ * @param bool $_hasContent * @param string $_data */ - protected function _writeTag($_tag, $_attributes=NULL, $_hasContent=false, $_data=NULL) + protected function _writeTag($_tag, $_attributes = null, $_hasContent = false, $_data = null) { - if($_hasContent == false && $_data !== NULL) { + if($_hasContent == false && $_data !== null) { throw new Syncroton_Wbxml_Exception('$_hasContent can not be false, when $_data !== NULL'); } - + // handle the tag $identity = $this->_codePage->getIdentity($_tag); - + if (is_array($_attributes) && isset($_attributes'uri:Syncroton;encoding')) { $encoding = 'opaque'; unset($_attributes'uri:Syncroton;encoding'); } else { $encoding = 'termstring'; } - + if(!empty($_attributes)) { $identity |= 0x80; } - + if($_hasContent == true) { $identity |= 0x40; } - + $this->_writeByte($identity); - + // handle the data - if($_data !== NULL) { + if($_data !== null) { if ($encoding == 'opaque') { - $this->_writeOpaqueString(base64_decode($_data)); + $this->_writeOpaqueString(base64_decode($_data)); } else { $this->_writeTerminatedString($_data); } @@ -227,19 +226,19 @@ /** * switch code page * - * @param string $_urn + * @param string $_nameSpace
View file
kolab-syncroton-2.4.2.tar.gz/lib/ext/Syncroton/Wbxml/Exception.php
Changed
@@ -17,7 +17,7 @@ * @subpackage Wbxml */ -class Syncroton_Wbxml_Exception extends Exception +class Syncroton_Wbxml_Exception extends Exception { protected $message = 'wbxml exception'; -} \ No newline at end of file +}
View file
kolab-syncroton-2.4.2.tar.gz/lib/kolab_sync_backend_common.php
Changed
@@ -144,13 +144,14 @@ /** * Deletes Syncroton data object * - * @param string|object $id Object or identifier + * @param string|Syncroton_Model_IEntry $id Object or identifier * * @return bool True on success, False on failure * @throws Syncroton_Exception_DeadlockDetected|Exception */ public function delete($id) { + // @phpstan-ignore-next-line $id = $id instanceof $this->interface_name ? $id->id : $id; if (!$id) {
View file
kolab-syncroton-2.4.2.tar.gz/lib/kolab_sync_backend_device.php
Changed
@@ -76,7 +76,7 @@ /** * Delete a device * - * @param Syncroton_Model_IDevice $device Device object + * @param string|Syncroton_Model_IDevice $device Device object * * @return bool True on success, False on failure */
View file
kolab-syncroton-2.4.2.tar.gz/lib/kolab_sync_backend_state.php
Changed
@@ -225,5 +225,4 @@ $select = $this->db->query("SELECT id FROM `{$this->table_name}` WHERE " . implode(' AND ', $where)); return $this->db->num_rows($select) > 0; } - }
View file
kolab-syncroton-2.4.2.tar.gz/lib/kolab_sync_data.php
Changed
@@ -510,7 +510,7 @@ $found = false; foreach ($this->extractFolders($folderid) as $fid) { - $search = $this->backend->searchEntries($fid, $this->device->deviceid, $this->modelName, $filter, $result_type, $force, $extraData); + $search = $this->backend->searchEntries($fid, $this->device->deviceid, $this->device->id, $this->modelName, $filter, $result_type, $force, $extraData); $found = true; switch ($result_type) { @@ -587,7 +587,7 @@ return $this->searchEntries($folderId, $filter, self::RESULT_COUNT, $syncState->extraData); } - + public function getExtraData(Syncroton_Model_IFolder $folder) { return $this->backend->getExtraData($folder->serverId, $this->device->deviceid); @@ -636,7 +636,6 @@ */ public function getCountOfChanges(Syncroton_Backend_IContent $contentBackend, Syncroton_Model_IFolder $folder, Syncroton_Model_ISyncState $syncState) { - // @phpstan-ignore-next-line $allClientEntries = $contentBackend->getFolderState($this->device, $folder, $syncState->counter); $allServerEntries = $this->getServerEntries($folder->serverId, $folder->lastfiltertype); $changedEntries = $this->getChangedEntriesCount($folder->serverId, $syncState, $folder->lastfiltertype); @@ -662,7 +661,6 @@ return true; } - // @phpstan-ignore-next-line $allClientEntries = $contentBackend->getFolderState($this->device, $folder, $syncState->counter); // @TODO: Consider looping over all folders here, not in getServerEntries() and
View file
kolab-syncroton-2.4.2.tar.gz/lib/kolab_sync_data_calendar.php
Changed
@@ -1246,7 +1246,7 @@ /** * Sanity checks on event input * - * @param Syncroton_Model_IEntry &$entry Entry object + * @param Syncroton_Model_Event|Syncroton_Model_EventException &$entry Entry object * * @throws Syncroton_Exception_Status_Sync */
View file
kolab-syncroton-2.4.2.tar.gz/lib/kolab_sync_data_email.php
Changed
@@ -720,8 +720,8 @@ /** * add entry from xml data * - * @param string $folderId Folder identifier - * @param Syncroton_Model_IEntry $entry Entry + * @param string $folderId Folder identifier + * @param Syncroton_Model_Email $entry Entry * * @return string ID of the created entry */
View file
kolab-syncroton-2.4.2.tar.gz/lib/kolab_sync_logger.php
Changed
@@ -103,7 +103,7 @@ // if log_file is configured all logs will go to it // otherwise use separate file for info/debug and warning/error - $file="undefined"; + $file = "undefined"; if (!$logfile) { switch ($mode) { case self::DEBUG:
View file
kolab-syncroton-2.4.2.tar.gz/lib/kolab_sync_storage.php
Changed
@@ -1135,6 +1135,7 @@ * * @param string $folderid Folder identifier * @param string $deviceid Device identifier + * @param string $device_key Device primary key * @param string $type Activesync model name (folder type) * @param array $filter Filter * @param int $result_type Type of the result (see kolab_sync_data::RESULT_* constants) @@ -1143,10 +1144,10 @@ * * @return array|int Search result as count or array of uids */ - public function searchEntries($folderid, $deviceid, $type, $filter, $result_type, $force, $extraData) + public function searchEntries($folderid, $deviceid, $device_key, $type, $filter, $result_type, $force, $extraData) { if ($type != self::MODEL_EMAIL) { - return $this->searchKolabEntries($folderid, $deviceid, $type, $filter, $result_type, $force); + return $this->searchKolabEntries($folderid, $deviceid, $device_key, $type, $filter, $result_type, $force); } $filter_str = 'ALL UNDELETED'; @@ -1163,11 +1164,6 @@ } } - // get members of modified relations - if ($this->relationSupport) { - $changed_msgs = $this->getChangesByRelations($folderid, $deviceid, $type, $filter); - } - $result = $result_type == kolab_sync_data::RESULT_COUNT ? 0 : ; $foldername = $this->folder_id2name($folderid, $deviceid); @@ -1247,19 +1243,24 @@ } } - // handle relation changes - if (!empty($changed_msgs)) { - $members = $this->findRelationMembersInFolder($foldername, $changed_msgs, $filter); - - switch ($result_type) { - case kolab_sync_data::RESULT_COUNT: - $result += count($members); - break; - - case kolab_sync_data::RESULT_UID: - $result = array_values(array_unique(array_merge($result, $members))); - break; + // get members of modified relations + if ($this->relationSupport) { + $changed_msgs = $this->getChangesByRelations($folderid, $device_key, $type, $filter); + // handle relation changes + if (!empty($changed_msgs)) { + $members = $this->findRelationMembersInFolder($foldername, $changed_msgs, $filter); + + switch ($result_type) { + case kolab_sync_data::RESULT_COUNT: + $result += count($members); + break; + + case kolab_sync_data::RESULT_UID: + $result = array_values(array_unique(array_merge($result, $members))); + break; + } } + } return $result; @@ -1299,6 +1300,7 @@ * * @param string $folderid Folder identifier * @param string $deviceid Device identifier + * @param string $device_key Device primary key * @param string $type Activesync model name (folder type) * @param array $filter Filter * @param int $result_type Type of the result (see kolab_sync_data::RESULT_* constants) @@ -1306,13 +1308,13 @@ * * @return array|int Search result as count or array of uids */ - protected function searchKolabEntries($folderid, $deviceid, $type, $filter, $result_type, $force) + protected function searchKolabEntries($folderid, $deviceid, $device_key, $type, $filter, $result_type, $force) { // there's a PHP Warning from kolab_storage if $filter isn't an array if (empty($filter)) { $filter = ; } elseif ($this->relationSupport && ($type == self::MODEL_TASKS || $type == self::MODEL_NOTES)) { - $changed_objects = $this->getChangesByRelations($folderid, $deviceid, $type, $filter); + $changed_objects = $this->getChangesByRelations($folderid, $device_key, $type, $filter); } $folder = $this->getFolder($folderid, $deviceid, $type); @@ -1472,7 +1474,7 @@ * Detect changes of relation (tag) objects data and assigned objects * Returns relation member identifiers */ - protected function getChangesByRelations($folderid, $deviceid, $type, $filter) + protected function getChangesByRelations($folderid, $device_key, $type, $filter) { // get period filter, create new objects filter foreach ($filter as $f) { @@ -1487,7 +1489,7 @@ } // get relations state from the last sync - $last_state = (array) $this->relations_state_get($deviceid, $folderid, $since); + $last_state = (array) $this->relations_state_get($device_key, $folderid, $since); // get current relations state $config = kolab_storage_config::get_instance(); @@ -1564,7 +1566,7 @@ $now = new DateTime('now', new DateTimeZone('UTC')); - $this->relations_state_set($deviceid, $folderid, $now, $data); + $this->relations_state_set($device_key, $folderid, $now, $data); } // in mail mode return only message URIs @@ -1915,7 +1917,7 @@ /** * Set state of relation objects at specified point in time */ - public function relations_state_set($deviceid, $folderid, $synctime, $relations) + public function relations_state_set($device_key, $folderid, $synctime, $relations) { $synctime = $synctime->format('Y-m-d H:i:s'); $rcube = rcube::get_instance(); @@ -1926,24 +1928,25 @@ $this->relations$folderid$synctime = $relations; $data = rcube_charset::clean(json_encode($relations)); - $db->set_option('ignore_key_errors', true); - $db->query( + $result = $db->query( "INSERT INTO `syncroton_relations_state`" . " (`device_id`, `folder_id`, `synctime`, `data`)" . " VALUES (?, ?, ?, ?)", - $deviceid, + $device_key, $folderid, $synctime, $data ); - $db->set_option('ignore_key_errors', false); + if ($err = $db->is_error($result)) { + throw new Exception("Failed to save relation: {$err}"); + } } } /** * Get state of relation objects at specified point in time */ - protected function relations_state_get($deviceid, $folderid, $synctime) + protected function relations_state_get($device_key, $folderid, $synctime) { $synctime = $synctime->format('Y-m-d H:i:s'); @@ -1959,7 +1962,7 @@ . " ORDER BY `synctime` DESC", 0, 1, - $deviceid, + $device_key, $folderid, $synctime ); @@ -1974,7 +1977,7 @@ $db->query( "DELETE FROM `syncroton_relations_state`" . " WHERE `device_id` = ? AND `folder_id` = ? AND `synctime` <> ?", - $deviceid, + $device_key, $folderid, $synctime );
View file
kolab-syncroton-2.4.2.tar.gz/lib/kolab_sync_storage_kolab4.php
Changed
@@ -561,7 +561,8 @@ // TODO: Subscribe shared DAV folders } - public function getExtraData($folderid, $deviceid) { + public function getExtraData($folderid, $deviceid) + { if (strpos($folderid, 'DAV:') === 0) { return null; }
View file
kolab-syncroton-2.4.2.tar.gz/phpstan.neon
Changed
@@ -3,14 +3,8 @@ - phpstan.bootstrap.php excludePaths: - - vendor - lib/plugins - lib/ext/Roundcube - - lib/ext/Syncroton - - ignoreErrors: - - |Access to an undefined property Syncroton_Model_.*| - - |Access to offset .* on an unknown class An.| paths: - lib
View file
kolab-syncroton-2.4.2.tar.gz/tests/Sync/Sync/EmailTest.php
Changed
@@ -302,7 +302,7 @@ return 'syncKey' => $syncKey, - 'serverId' => $serverId1 + 'serverId' => $serverId1, ; } @@ -361,7 +361,7 @@ return 'syncKey' => $syncKey, - 'serverId' => $serverId + 'serverId' => $serverId, ; }
View file
kolab-syncroton.dsc
Changed
@@ -2,7 +2,7 @@ Source: kolab-syncroton Binary: kolab-syncroton Architecture: all -Version: 1:2.4.2.16-1~kolab1 +Version: 1:2.4.2.18-1~kolab1 Maintainer: Jeroen van Meeuwen <vanmeeuwen@kolabsys.com> Uploaders: Jeroen van Meeuwen <vanmeeuwen@kolabsys.com> Homepage: http://www.kolab.org/
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.