View | Details | Raw Unified | Return to bug 218628
Collapse All | Expand All

(-)Makefile (-1 / +1 lines)
Lines 3-9 Link Here
3
3
4
PORTNAME=	baikal
4
PORTNAME=	baikal
5
PORTVERSION=	0.4.6
5
PORTVERSION=	0.4.6
6
PORTREVISION=	1
6
PORTREVISION=	2
7
CATEGORIES=	www
7
CATEGORIES=	www
8
MASTER_SITES=	https://github.com/fruux/Baikal/releases/download/${PORTVERSION}/
8
MASTER_SITES=	https://github.com/fruux/Baikal/releases/download/${PORTVERSION}/
9
9
(-)files/patch-vendor_sabre_dav_lib_CardDAV_Plugin.php (+38 lines)
Line 0 Link Here
1
--- vendor/sabre/dav/lib/CardDAV/Plugin.php.orig	2017-04-13 09:06:24 UTC
2
+++ vendor/sabre/dav/lib/CardDAV/Plugin.php
3
@@ -450,7 +450,8 @@ class Plugin extends DAV\ServerPlugin {
4
 
5
                 $props[200]['{' . self::NS_CARDDAV . '}address-data'] = $this->convertVCard(
6
                     $props[200]['{' . self::NS_CARDDAV . '}address-data'],
7
-                    $vcardType
8
+                    $vcardType,
9
+                    $report->addressDataProperties
10
                 );
11
 
12
             }
13
@@ -807,12 +808,24 @@ class Plugin extends DAV\ServerPlugin {
14
      * @param string $target
15
      * @return string
16
      */
17
-    protected function convertVCard($data, $target) {
18
+    protected function convertVCard($data, $target, array $propertiesFilter = null) {
19
 
20
         if (is_resource($data)) {
21
             $data = stream_get_contents($data);
22
         }
23
         $input = VObject\Reader::read($data);
24
+        if (!empty($propertiesFilter)) {
25
+            $propertiesFilter = array_merge(['UID', 'VERSION', 'FN'], $propertiesFilter);
26
+            $keys = array_unique(array_map(function($child) {
27
+                return $child->name;
28
+            }, $input->children()));
29
+            $keys = array_diff($keys, $propertiesFilter);
30
+            $str = "";
31
+            foreach ($keys as $key) {
32
+                unset($input->$key);
33
+            }
34
+            $data = $input->serialize();
35
+        }
36
         $output = null;
37
         try {
38
 
(-)files/patch-vendor_sabre_dav_lib_CardDAV_Xml_Filter_AddressData.php (+14 lines)
Line 0 Link Here
1
--- vendor/sabre/dav/lib/CardDAV/Xml/Filter/AddressData.php.orig	2017-04-13 09:07:03 UTC
2
+++ vendor/sabre/dav/lib/CardDAV/Xml/Filter/AddressData.php
3
@@ -51,6 +51,11 @@ class AddressData implements XmlDeserial
4
             'version'     => $reader->getAttribute('version') ?: '3.0',
5
         ];
6
 
7
+        $elems = (array)$reader->parseInnerTree();
8
+        $result['addressDataProperties'] = array_map(function($element) {
9
+            return $element['attributes']['name'];
10
+        }, $elems);
11
+
12
         $reader->next();
13
         return $result;
14
 
(-)files/patch-vendor_sabre_dav_lib_CardDAV_Xml_Request_AddressBookQueryReport.php (+16 lines)
Line 0 Link Here
1
--- vendor/sabre/dav/lib/CardDAV/Xml/Request/AddressBookQueryReport.php.orig	2017-04-13 09:07:30 UTC
2
+++ vendor/sabre/dav/lib/CardDAV/Xml/Request/AddressBookQueryReport.php
3
@@ -29,6 +29,13 @@ class AddressBookQueryReport implements 
4
     public $properties;
5
 
6
     /**
7
+     * An array with requested vcard properties.
8
+     *
9
+     * @var array
10
+     */
11
+    public $addressDataProperties = [];
12
+
13
+    /**
14
      * List of property/component filters.
15
      *
16
      * This is an array with filters. Every item is a property filter. Every

Return to bug 218628