diff --git a/app/Dav/AddressBookBackend.php b/app/Dav/AddressBookBackend.php index aa1901f8..97732d5a 100644 --- a/app/Dav/AddressBookBackend.php +++ b/app/Dav/AddressBookBackend.php @@ -33,7 +33,7 @@ class AddressBookBackend extends AbstractBackend */ public function getAddressBooksForUser($principalUri) { - if (1 !== preg_match('/^\/principals\/(.*)$/', $principalUri, $matches)) { + if (1 !== preg_match('/^principals\/(.*)$/', $principalUri, $matches)) { return []; } diff --git a/app/Dav/Principal.php b/app/Dav/Principal.php index a221ea15..e9f8181a 100644 --- a/app/Dav/Principal.php +++ b/app/Dav/Principal.php @@ -151,6 +151,11 @@ class Principal implements PrincipalBackendInterface */ public function getGroupMembership($principal) { + if (1 !== preg_match('/^\/principals\/(.*)$/', $principal, $matches)) { + return null; + } + + return ['addressbooks/'.$matches[1]]; } /** @@ -171,7 +176,7 @@ class Principal implements PrincipalBackendInterface { return [ '{DAV:}displayname' => $user->name, - 'uri' => '/principals/'.$user->email, + 'uri' => 'principals/'.$user->email, '{http://sabredav.org/ns}email-address' => $user->email, ]; } diff --git a/app/Dav/ServiceProvider.php b/app/Dav/ServiceProvider.php index 3a94c8f8..b32ca6af 100644 --- a/app/Dav/ServiceProvider.php +++ b/app/Dav/ServiceProvider.php @@ -10,6 +10,7 @@ use Sabre\CardDAV\Plugin as CardDAVPlugin; use Sabre\DAV\Auth\Plugin as AuthPlugin; use Sabre\DAV\Browser\Plugin as BrowserPlugin; use Sabre\DAVACL\AbstractPrincipalCollection; +use Sabre\DAVACL\Plugin as AclPlugin; use Sabre\DAVACL\PrincipalCollection; class ServiceProvider extends BaseServiceProvider @@ -57,6 +58,7 @@ class ServiceProvider extends BaseServiceProvider new BrowserPlugin(), new AuthPlugin($authBackend), new CardDAVPlugin(), + new AclPlugin(), ]; } }