diff options
author | zotlabs <root@sillystring.adeis.uow.edu.au> | 2017-03-16 11:42:06 +1100 |
---|---|---|
committer | zotlabs <root@sillystring.adeis.uow.edu.au> | 2017-03-16 11:42:06 +1100 |
commit | 8d4744d115036dd7ec4169f8b1fdebebac6fb602 (patch) | |
tree | aa8c18d6c51256fb94048dccf0c822b0281ad894 /vendor/sabre/dav/lib/CardDAV/Plugin.php | |
parent | df6c07aaadda2e89d2843bae136f813c909637ba (diff) | |
download | volse-hubzilla-8d4744d115036dd7ec4169f8b1fdebebac6fb602.tar.gz volse-hubzilla-8d4744d115036dd7ec4169f8b1fdebebac6fb602.tar.bz2 volse-hubzilla-8d4744d115036dd7ec4169f8b1fdebebac6fb602.zip |
new composer.lock for red
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 { |