aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/sabre/dav/lib/CardDAV/Plugin.php
diff options
context:
space:
mode:
authorzotlabs <root@sillystring.adeis.uow.edu.au>2017-03-16 11:42:06 +1100
committerzotlabs <root@sillystring.adeis.uow.edu.au>2017-03-16 11:42:06 +1100
commit8d4744d115036dd7ec4169f8b1fdebebac6fb602 (patch)
treeaa8c18d6c51256fb94048dccf0c822b0281ad894 /vendor/sabre/dav/lib/CardDAV/Plugin.php
parentdf6c07aaadda2e89d2843bae136f813c909637ba (diff)
downloadvolse-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.php19
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 {