Oh yeah :p [config] reverseacls = yes
I'll fix the test to include that. The shared addressbooks only work with reverseacls turned on. On Wed, Jun 22, 2016, at 10:43, ellie timoney via Cyrus-devel wrote: > I'm still getting grief from the two Caldav sharing tests: > > sharing_samedomain: https://paste.fedoraproject.org/382871/66554226/ > sharing_crossdomain: https://paste.fedoraproject.org/382872/14665543/ > > I've had a good deep dig into the error report, and it really looks like > Cyrus just isn't returning the shared calendars. > > Looking specifically at sharing_samedomain for now, here's the part of > the test where things start going awry: > > > $talk2->NewAddressBook("Shared", name => "Shared Address Book"); > > $admintalk->setacl("user.user2.#addressbooks.Shared\@example.com", > > "user1\@example.com", 'lrsn'); > > > > my $Addressbooks = $talk1->GetAddressBooks(); > > > > $self->assert_deep_equals([ > > { > > 'name' => 'personal', > > 'isReadOnly' => 0, > > 'path' => 'Default', > > 'href' => '/dav/addressbooks/user/us...@example.com/Default/' > > }, > > { > > 'path' => '/dav/addressbooks/zzzz/us...@example.com/Shared', > > 'href' => '/dav/addressbooks/zzzz/us...@example.com/Shared/', > > 'name' => 'Shared Address Book', > > 'isReadOnly' => 1, > > } > > ], $Addressbooks); > > => create a new addressbook "Shared" on user2 > => give user1 "lsrn" rights to it > => look up user1's address books > => expect to find user1's "Default" addressbook, and user2's "Shared" > addressbook > > The output from these actions starts at line 201 (which fpaste doesn't > let me link directly to, doh). > > You can see it creating the addressbook (201 Completed), setting the acl > (OK Completed), and then it asks for user1's addressbooks: > > > <<<<<<<< PROPFIND > > http://127.0.0.1:9100/dav/addressbooks/user/us...@example.com/ HTTP/1.1 > > <D:propfind xmlns:D='DAV:' > > xmlns:C='urn:ietf:params:xml:ns:carddav'><D:prop><D:displayname/> > > <D:resourcetype/><D:current-user-privilege-set/></D:prop></D:propfind> > > >>>>>>>> HTTP/1.1 207 Multi-Status > > And the response XML (with the long lists of privileges snipped out, for > readability): > > > <?xml version="1.0" encoding="utf-8"?> > > <D:multistatus xmlns:D="DAV:" xmlns:C="urn:ietf:params:xml:ns:carddav" > > xmlns:XFA68="urn:ietf:params:xml:ns:caldav" > > xmlns:CY="http://cyrusimap.org/ns/"> > > <D:response> > > <D:href>/dav/addressbooks/user/us...@example.com/</D:href> > > <D:propstat> > > <D:prop> > > <D:resourcetype> > > <D:collection/> > > </D:resourcetype> > > <D:current-user-privilege-set> > > [snip] > > </D:current-user-privilege-set> > > </D:prop> > > <D:status>HTTP/1.1 200 OK</D:status> > > </D:propstat> > > <D:propstat> > > <D:prop> > > <D:displayname/> > > </D:prop> > > <D:status>HTTP/1.1 404 Not Found</D:status> > > </D:propstat> > > </D:response> > > <D:response> > > <D:href>/dav/addressbooks/user/us...@example.com/Default/</D:href> > > <D:propstat> > > <D:prop> > > <D:displayname><![CDATA[personal]]></D:displayname> > > <D:resourcetype> > > <D:collection/> > > <C:addressbook/> > > </D:resourcetype> > > <D:current-user-privilege-set> > > [snip] > > </D:current-user-privilege-set> > > </D:prop> > > <D:status>HTTP/1.1 200 OK</D:status> > > </D:propstat> > > </D:response> > > </D:multistatus> > > There are two responses in this: > > * one for user1's top level (the "addressbook-home-set"? I don't think > NetCardDAVTalk includes this in the returned list of addressbooks) > * one for user1's "Default" calendar > > But there's no response in the XML containing the expected "Shared" > addressbook, and so we get the test failure: > > > Structures begin differing at: > > $a->[1] = 'HASH(0x455c428)' > > $b->[1] = Does not exist > > at Cassandane/Cyrus/Carddav.pm line 328. > > Index 0 is OK - it contains user1's Default calendar. But index 1, > which we expect to contain user2's Shared calendar, doesn't exist. > > This doesn't seem to be a perl module problem -- it's not that the perl > module is mishandling the response, it's that Cyrus is not providing the > expected response. > > On a hunch, I tried running Cassandane across fm/future, thinking maybe > there was a relevant Cyrus commit that hadn't been sent upstream yet... > but it fails in the same way. > > Any ideas? > > Anyone else finding these two tests failing? > > On Mon, May 16, 2016, at 11:37 AM, ellie timoney via Cyrus-devel wrote: > > On Mon, May 16, 2016, at 11:04 AM, Bron Gondwana via Cyrus-devel wrote: > > > Are you running the latest version of all the perl modules? I suspect I > > > have > > > pushed more recent versions to CPAN that fix these - there were a bunch > > > of > > > things that required perl module fiddling. > > > > I think so, at least the DAV ones and their dependencies: > > > > => Net::DAVTalk 0.09 (from CPAN) > > => Net::CardDAVTalk 0.03 (from CPAN) > > => Net::CalDAVTalk 0.05+1 (from github) > > > > The last updates to these on CPAN were a couple of weeks ago, on 2nd and > > 3rd of May. These are the versions I have. > > > > I'm using a version of Net::CalDAVTalk from github because it's one > > commit ahead of CPAN (fixes missing "_method", which caused most of the > > Caldav tests to fail with the CPAN version). -- Bron Gondwana br...@fastmail.fm