diff options
author | Mario Vavti <mario@mariovavti.com> | 2017-05-04 10:51:39 +0200 |
---|---|---|
committer | Mario Vavti <mario@mariovavti.com> | 2017-05-04 10:51:39 +0200 |
commit | 5c7acf4807aa427cf1391e0a5d044b453c38e619 (patch) | |
tree | 3fe49d4c3f75b0e2c9605327a3951f1da28e28b6 /vendor/sabre/dav/lib/CardDAV/Plugin.php | |
parent | a92b9b7adb2be489106138b6269a5f7fe8eea5aa (diff) | |
download | volse-hubzilla-5c7acf4807aa427cf1391e0a5d044b453c38e619.tar.gz volse-hubzilla-5c7acf4807aa427cf1391e0a5d044b453c38e619.tar.bz2 volse-hubzilla-5c7acf4807aa427cf1391e0a5d044b453c38e619.zip |
update sabredav to version 3.2.2
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 { |