diff options
author | zotlabs <mike@macgirvin.com> | 2017-05-04 19:20:29 -0700 |
---|---|---|
committer | zotlabs <mike@macgirvin.com> | 2017-05-04 19:20:29 -0700 |
commit | e308c3d34afda1c467b049314324faa546294c9a (patch) | |
tree | 81352041e9dd94700e8be158ddda7ee66fea68f4 /vendor/sabre/dav/lib/CardDAV/Plugin.php | |
parent | 977677d0051db24c6b7666a73c4dd6a48fe89377 (diff) | |
parent | 5c7acf4807aa427cf1391e0a5d044b453c38e619 (diff) | |
download | volse-hubzilla-e308c3d34afda1c467b049314324faa546294c9a.tar.gz volse-hubzilla-e308c3d34afda1c467b049314324faa546294c9a.tar.bz2 volse-hubzilla-e308c3d34afda1c467b049314324faa546294c9a.zip |
Merge branch 'dev' of https://github.com/redmatrix/hubzilla into dev_merge
Diffstat (limited to 'vendor/sabre/dav/lib/CardDAV/Plugin.php')
-rw-r--r-- | vendor/sabre/dav/lib/CardDAV/Plugin.php | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/vendor/sabre/dav/lib/CardDAV/Plugin.php b/vendor/sabre/dav/lib/CardDAV/Plugin.php index 0507df100..272ae71fa 100644 --- a/vendor/sabre/dav/lib/CardDAV/Plugin.php +++ b/vendor/sabre/dav/lib/CardDAV/Plugin.php @@ -43,7 +43,7 @@ class Plugin extends DAV\ServerPlugin { /** * Server class * - * @var Sabre\DAV\Server + * @var DAV\Server */ protected $server; @@ -490,7 +490,8 @@ class Plugin extends DAV\ServerPlugin { $props[200]['{' . self::NS_CARDDAV . '}address-data'] = $this->convertVCard( $props[200]['{' . self::NS_CARDDAV . '}address-data'], - $vcardType + $vcardType, + $report->addressDataProperties ); } @@ -845,14 +846,26 @@ class Plugin extends DAV\ServerPlugin { * * @param string|resource $data * @param string $target + * @param array $propertiesFilter * @return string */ - protected function convertVCard($data, $target) { + protected function convertVCard($data, $target, array $propertiesFilter = null) { if (is_resource($data)) { $data = stream_get_contents($data); } $input = VObject\Reader::read($data); + if (!empty($propertiesFilter)) { + $propertiesFilter = array_merge(['UID', 'VERSION', 'FN'], $propertiesFilter); + $keys = array_unique(array_map(function($child) { + return $child->name; + }, $input->children())); + $keys = array_diff($keys, $propertiesFilter); + foreach ($keys as $key) { + unset($input->$key); + } + $data = $input->serialize(); + } $output = null; try { |