From 1186977589efc4e0d5b78f0024e6eaddffe39f6b Mon Sep 17 00:00:00 2001 From: Arthur Schiwon Date: Wed, 2 Dec 2020 20:00:46 +0100 Subject: [PATCH 1/3] fixes sharing to group ids with characters that are being url encoded Signed-off-by: Arthur Schiwon --- apps/dav/lib/CalDAV/CalDavBackend.php | 3 --- apps/dav/lib/DAV/Sharing/Backend.php | 1 + 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/apps/dav/lib/CalDAV/CalDavBackend.php b/apps/dav/lib/CalDAV/CalDavBackend.php index 84294971b4..0cff119b1b 100644 --- a/apps/dav/lib/CalDAV/CalDavBackend.php +++ b/apps/dav/lib/CalDAV/CalDavBackend.php @@ -345,9 +345,6 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription $principals = $this->principalBackend->getGroupMembership($principalUriOriginal, true); $principals = array_merge($principals, $this->principalBackend->getCircleMembership($principalUriOriginal)); - $principals = array_map(function ($principal) { - return urldecode($principal); - }, $principals); $principals[] = $principalUri; $fields = array_values($this->propertyMap); diff --git a/apps/dav/lib/DAV/Sharing/Backend.php b/apps/dav/lib/DAV/Sharing/Backend.php index 979eb39135..9dbbc2f397 100644 --- a/apps/dav/lib/DAV/Sharing/Backend.php +++ b/apps/dav/lib/DAV/Sharing/Backend.php @@ -107,6 +107,7 @@ class Backend { return; } + $principal[2] = urldecode($principal[2]); if (($principal[1] === 'users' && !$this->userManager->userExists($principal[2])) || ($principal[1] === 'groups' && !$this->groupManager->groupExists($principal[2]))) { // User or group does not exist From 9abff14e8d5e76932fc227f34969c9661c736067 Mon Sep 17 00:00:00 2001 From: Arthur Schiwon Date: Thu, 3 Dec 2020 12:35:51 +0100 Subject: [PATCH 2/3] fix finding of groups with decodable chars in their id via DAV Signed-off-by: Arthur Schiwon --- apps/dav/lib/DAV/GroupPrincipalBackend.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/dav/lib/DAV/GroupPrincipalBackend.php b/apps/dav/lib/DAV/GroupPrincipalBackend.php index 8b9c5aa948..772f3cf312 100644 --- a/apps/dav/lib/DAV/GroupPrincipalBackend.php +++ b/apps/dav/lib/DAV/GroupPrincipalBackend.php @@ -231,7 +231,7 @@ class GroupPrincipalBackend implements BackendInterface { } } - $carry[] = self::PRINCIPAL_PREFIX . '/' . $gid; + $carry[] = self::PRINCIPAL_PREFIX . '/' . urlencode($gid); return $carry; }, []); break; From 622d02842ca10b59661ed5fe8f5e3eecb6da7f05 Mon Sep 17 00:00:00 2001 From: Arthur Schiwon Date: Wed, 16 Dec 2020 22:42:57 +0100 Subject: [PATCH 3/3] fixes sharing to group ids /w chars that are being url encoded, carddav Signed-off-by: Arthur Schiwon --- apps/dav/lib/CardDAV/CardDavBackend.php | 3 --- 1 file changed, 3 deletions(-) diff --git a/apps/dav/lib/CardDAV/CardDavBackend.php b/apps/dav/lib/CardDAV/CardDavBackend.php index bd881eb06c..f547553234 100644 --- a/apps/dav/lib/CardDAV/CardDavBackend.php +++ b/apps/dav/lib/CardDAV/CardDavBackend.php @@ -191,9 +191,6 @@ class CardDavBackend implements BackendInterface, SyncSupport { $principals = $this->principalBackend->getGroupMembership($principalUriOriginal, true); $principals = array_merge($principals, $this->principalBackend->getCircleMembership($principalUriOriginal)); - $principals = array_map(function ($principal) { - return urldecode($principal); - }, $principals); $principals[] = $principalUri; $query = $this->db->getQueryBuilder();