Authentication/Rights validation fails when using Apple Contacts App
CalDAV and CardDAV Django Application based on Radicale
Brought to you by:
okami1
Originally created by: Proper-Job
I tried a sample project with Apple's Contacts App which comes with OSX.
I added a test user (testuser) in the admin interface, which is active, staff and has all djradical permissions.
Usually the Contact App autocreates an addressbook with radicale without problems. Auth/rights seem to be a problem here. Here is my log output:
[29/Jul/2015 14:52:08] DEBUG [djradicale:34] Authentication type is custom
[29/Jul/2015 14:52:08] INFO [djradicale:247] PROPFIND request at /.well-known/carddav received
[29/Jul/2015 14:52:08] DEBUG [djradicale:249] Request headers:
{'CONTENT_LENGTH': '181',
'CONTENT_TYPE': 'text/xml',
'CSRF_COOKIE': 'L4Y9vvB9dBuxzMWVIOVKqAeHFopGI4T6',
'GATEWAY_INTERFACE': 'CGI/1.1',
'HTTP_ACCEPT': '*/*',
'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
'HTTP_ACCEPT_LANGUAGE': 'en-us',
'HTTP_BRIEF': 't',
'HTTP_CONNECTION': 'keep-alive',
'HTTP_DEPTH': '0',
'HTTP_HOST': '127.0.0.1:8000',
'HTTP_PREFER': 'return=minimal',
'HTTP_USER_AGENT': 'Mac OS X/10.10.4 (14E46) AddressBook/1579',
'PATH_INFO': '/.well-known/carddav',
'QUERY_STRING': '',
'REMOTE_ADDR': '127.0.0.1',
'REMOTE_HOST': '',
'REQUEST_METHOD': 'PROPFIND',
'SCRIPT_NAME': '',
'SERVER_NAME': '1.0.0.127.in-addr.arpa',
'SERVER_PORT': '8000',
'SERVER_PROTOCOL': 'HTTP/1.1',
'SERVER_SOFTWARE': 'WSGIServer/0.2',
'wsgi.errors': <_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'>,
'wsgi.file_wrapper': <class 'wsgiref.util.FileWrapper'>,
'wsgi.input': <_io.BufferedReader name=5>,
'wsgi.multiprocess': False,
'wsgi.multithread': True,
'wsgi.run_once': False,
'wsgi.url_scheme': 'http',
'wsgi.version': (1, 0)}
[29/Jul/2015 14:52:08] DEBUG [djradicale:259] Skipped already sanitized path: /.well-known/carddav
[29/Jul/2015 14:52:08] INFO [djradicale:293] Refused /.well-known/ redirection to anonymous user
[29/Jul/2015 14:52:08] DEBUG [djradicale:34] Authentication type is custom
[29/Jul/2015 14:52:08] INFO [djradicale:247] PROPFIND request at /pim/testuser/addressbook.vcf/ received
[29/Jul/2015 14:52:08] DEBUG [djradicale:249] Request headers:
{'CONTENT_LENGTH': '181',
'CONTENT_TYPE': 'text/xml',
'CSRF_COOKIE': 'lJmuWEAz44qQrNNVnFa3YZbAADAUm110',
'GATEWAY_INTERFACE': 'CGI/1.1',
'HTTP_ACCEPT': '*/*',
'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
'HTTP_ACCEPT_LANGUAGE': 'en-us',
'HTTP_AUTHORIZATION': 'Basic dGVzdHVzZXI6dGVzdA==',
'HTTP_BRIEF': 't',
'HTTP_CONNECTION': 'keep-alive',
'HTTP_DEPTH': '0',
'HTTP_HOST': '127.0.0.1:8000',
'HTTP_PREFER': 'return=minimal',
'HTTP_USER_AGENT': 'Mac OS X/10.10.4 (14E46) AddressBook/1579',
'PATH_INFO': '/pim/testuser/addressbook.vcf/',
'QUERY_STRING': '',
'REMOTE_ADDR': '127.0.0.1',
'REMOTE_HOST': '',
'REQUEST_METHOD': 'PROPFIND',
'SCRIPT_NAME': '',
'SERVER_NAME': '1.0.0.127.in-addr.arpa',
'SERVER_PORT': '8000',
'SERVER_PROTOCOL': 'HTTP/1.1',
'SERVER_SOFTWARE': 'WSGIServer/0.2',
'wsgi.errors': <_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'>,
'wsgi.file_wrapper': <class 'wsgiref.util.FileWrapper'>,
'wsgi.input': <_io.BufferedReader name=5>,
'wsgi.multiprocess': False,
'wsgi.multithread': True,
'wsgi.run_once': False,
'wsgi.url_scheme': 'http',
'wsgi.version': (1, 0)}
[29/Jul/2015 14:52:08] DEBUG [djradicale:256] Sanitized path: /testuser/addressbook.vcf/
[29/Jul/2015 14:52:08] DEBUG [djradicale:55] Rights type 'djradicale.rights.django'
[29/Jul/2015 14:52:08] DEBUG [djradicale:62] Test if 'testuser:testuser/addressbook.vcf' matches against '.+:^testuser/[a-z0-9\.\-_]+\.(vcf|ics)$' from section 'rw'
[29/Jul/2015 14:52:08] DEBUG [djradicale:67] Section 'rw' matches
[29/Jul/2015 14:52:08] DEBUG [djradicale:198] testuser has read access to collection testuser/addressbook.vcf/
[29/Jul/2015 14:52:08] DEBUG [djradicale:55] Rights type 'djradicale.rights.django'
[29/Jul/2015 14:52:08] DEBUG [djradicale:62] Test if 'testuser:testuser/addressbook.vcf' matches against '.+:^testuser/[a-z0-9\.\-_]+\.(vcf|ics)$' from section 'rw'
[29/Jul/2015 14:52:08] DEBUG [djradicale:67] Section 'rw' matches
[29/Jul/2015 14:52:08] DEBUG [djradicale:210] testuser has write access to collection testuser/addressbook.vcf/
[29/Jul/2015 14:52:08] DEBUG [djradicale:321] Request content:
<?xml version="1.0" encoding="UTF-8"?>
<A:propfind xmlns:A="DAV:">
<A:prop>
<A:current-user-principal/>
<A:principal-URL/>
<A:resourcetype/>
</A:prop>
</A:propfind>
[29/Jul/2015 14:52:08] DEBUG [djradicale:349] Response content:
<?xml version="1.0"?>
<multistatus xmlns="DAV:" xmlns:CR="urn:ietf:params:xml:ns:carddav">
<response>
<href>/pim/testuser/addressbook.vcf/</href>
<propstat>
<prop>
<current-user-principal>
<href>/pim/testuser/</href>
</current-user-principal>
<principal-URL>
<href>/pim/testuser/addressbook.vcf/</href>
</principal-URL>
<resourcetype>
<CR:addressbook />
<collection />
</resourcetype>
</prop>
<status>HTTP/1.1 200 OK</status>
</propstat>
</response>
</multistatus>
[29/Jul/2015 14:52:08] DEBUG [djradicale:358] Answer status: 207 Unknown
[29/Jul/2015 14:52:08] DEBUG [djradicale:34] Authentication type is custom
[29/Jul/2015 14:52:08] INFO [djradicale:247] OPTIONS request at /pim/testuser/ received
[29/Jul/2015 14:52:08] DEBUG [djradicale:249] Request headers:
{'CONTENT_LENGTH': '0',
'CONTENT_TYPE': 'text/plain',
'CSRF_COOKIE': 'tJHe1m6LvZJN6eE5Z4iOHL9YXeCj40GP',
'GATEWAY_INTERFACE': 'CGI/1.1',
'HTTP_ACCEPT': '*/*',
'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
'HTTP_ACCEPT_LANGUAGE': 'en-us',
'HTTP_CONNECTION': 'keep-alive',
'HTTP_HOST': '127.0.0.1:8000',
'HTTP_USER_AGENT': 'Mac OS X/10.10.4 (14E46) AddressBook/1579',
'PATH_INFO': '/pim/testuser/',
'QUERY_STRING': '',
'REMOTE_ADDR': '127.0.0.1',
'REMOTE_HOST': '',
'REQUEST_METHOD': 'OPTIONS',
'SCRIPT_NAME': '',
'SERVER_NAME': '1.0.0.127.in-addr.arpa',
'SERVER_PORT': '8000',
'SERVER_PROTOCOL': 'HTTP/1.1',
'SERVER_SOFTWARE': 'WSGIServer/0.2',
'wsgi.errors': <_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'>,
'wsgi.file_wrapper': <class 'wsgiref.util.FileWrapper'>,
'wsgi.input': <_io.BufferedReader name=5>,
'wsgi.multiprocess': False,
'wsgi.multithread': True,
'wsgi.run_once': False,
'wsgi.url_scheme': 'http',
'wsgi.version': (1, 0)}
[29/Jul/2015 14:52:08] DEBUG [djradicale:256] Sanitized path: /testuser/
[29/Jul/2015 14:52:08] DEBUG [djradicale:55] Rights type 'djradicale.rights.django'
[29/Jul/2015 14:52:08] DEBUG [djradicale:62] Test if ':testuser' matches against '.+:^/[a-z0-9\.\-_]+\.(vcf|ics)$' from section 'rw'
[29/Jul/2015 14:52:08] DEBUG [djradicale:204] Anonymous has NO read access to collection testuser/
[29/Jul/2015 14:52:08] DEBUG [djradicale:55] Rights type 'djradicale.rights.django'
[29/Jul/2015 14:52:08] DEBUG [djradicale:62] Test if ':testuser' matches against '.+:^/[a-z0-9\.\-_]+\.(vcf|ics)$' from section 'rw'
[29/Jul/2015 14:52:08] DEBUG [djradicale:216] Anonymous has NO write access to collection testuser/
[29/Jul/2015 14:52:08] DEBUG [djradicale:358] Answer status: 200 OK
[29/Jul/2015 14:52:08] DEBUG [djradicale:34] Authentication type is custom
[29/Jul/2015 14:52:08] INFO [djradicale:247] PROPFIND request at /pim/testuser/ received
[29/Jul/2015 14:52:08] DEBUG [djradicale:249] Request headers:
{'CONTENT_LENGTH': '439',
'CONTENT_TYPE': 'text/xml',
'CSRF_COOKIE': 'tpI0SmU45QZPBKh9rywgCuO8tevIAYyy',
'GATEWAY_INTERFACE': 'CGI/1.1',
'HTTP_ACCEPT': '*/*',
'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
'HTTP_ACCEPT_LANGUAGE': 'en-us',
'HTTP_BRIEF': 't',
'HTTP_CONNECTION': 'keep-alive',
'HTTP_DEPTH': '0',
'HTTP_HOST': '127.0.0.1:8000',
'HTTP_PREFER': 'return=minimal',
'HTTP_USER_AGENT': 'Mac OS X/10.10.4 (14E46) AddressBook/1579',
'PATH_INFO': '/pim/testuser/',
'QUERY_STRING': '',
'REMOTE_ADDR': '127.0.0.1',
'REMOTE_HOST': '',
'REQUEST_METHOD': 'PROPFIND',
'SCRIPT_NAME': '',
'SERVER_NAME': '1.0.0.127.in-addr.arpa',
'SERVER_PORT': '8000',
'SERVER_PROTOCOL': 'HTTP/1.1',
'SERVER_SOFTWARE': 'WSGIServer/0.2',
'wsgi.errors': <_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'>,
'wsgi.file_wrapper': <class 'wsgiref.util.FileWrapper'>,
'wsgi.input': <_io.BufferedReader name=5>,
'wsgi.multiprocess': False,
'wsgi.multithread': True,
'wsgi.run_once': False,
'wsgi.url_scheme': 'http',
'wsgi.version': (1, 0)}
[29/Jul/2015 14:52:08] DEBUG [djradicale:256] Sanitized path: /testuser/
[29/Jul/2015 14:52:08] DEBUG [djradicale:55] Rights type 'djradicale.rights.django'
[29/Jul/2015 14:52:08] DEBUG [djradicale:62] Test if ':testuser' matches against '.+:^/[a-z0-9\.\-_]+\.(vcf|ics)$' from section 'rw'
[29/Jul/2015 14:52:08] DEBUG [djradicale:204] Anonymous has NO read access to collection testuser/
[29/Jul/2015 14:52:08] DEBUG [djradicale:55] Rights type 'djradicale.rights.django'
[29/Jul/2015 14:52:08] DEBUG [djradicale:62] Test if ':testuser' matches against '.+:^/[a-z0-9\.\-_]+\.(vcf|ics)$' from section 'rw'
[29/Jul/2015 14:52:08] DEBUG [djradicale:216] Anonymous has NO write access to collection testuser/
[29/Jul/2015 14:52:08] DEBUG [djradicale:321] Request content:
<?xml version="1.0" encoding="UTF-8"?>
<A:propfind xmlns:A="DAV:">
<A:prop>
<B:addressbook-home-set xmlns:B="urn:ietf:params:xml:ns:carddav"/>
<B:directory-gateway xmlns:B="urn:ietf:params:xml:ns:carddav"/>
<A:displayname/>
<C:email-address-set xmlns:C="http://calendarserver.org/ns/"/>
<A:principal-collection-set/>
<A:principal-URL/>
<A:resource-id/>
<A:supported-report-set/>
</A:prop>
</A:propfind>
[29/Jul/2015 14:52:08] INFO [djradicale:339] Anonymous user refused
[29/Jul/2015 14:52:08] DEBUG [djradicale:358] Answer status: 401 Unauthorized
[29/Jul/2015 14:52:08] DEBUG [djradicale:34] Authentication type is custom
[29/Jul/2015 14:52:08] INFO [djradicale:247] PROPFIND request at /pim/testuser/ received
[29/Jul/2015 14:52:08] DEBUG [djradicale:249] Request headers:
{'CONTENT_LENGTH': '439',
'CONTENT_TYPE': 'text/xml',
'CSRF_COOKIE': 'wJmiXTOVZMTbElCGKEUbY7ZYbbUzNUm4',
'GATEWAY_INTERFACE': 'CGI/1.1',
'HTTP_ACCEPT': '*/*',
'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
'HTTP_ACCEPT_LANGUAGE': 'en-us',
'HTTP_AUTHORIZATION': 'Basic dGVzdHVzZXI6dGVzdA==',
'HTTP_BRIEF': 't',
'HTTP_CONNECTION': 'keep-alive',
'HTTP_DEPTH': '0',
'HTTP_HOST': '127.0.0.1:8000',
'HTTP_PREFER': 'return=minimal',
'HTTP_USER_AGENT': 'Mac OS X/10.10.4 (14E46) AddressBook/1579',
'PATH_INFO': '/pim/testuser/',
'QUERY_STRING': '',
'REMOTE_ADDR': '127.0.0.1',
'REMOTE_HOST': '',
'REQUEST_METHOD': 'PROPFIND',
'SCRIPT_NAME': '',
'SERVER_NAME': '1.0.0.127.in-addr.arpa',
'SERVER_PORT': '8000',
'SERVER_PROTOCOL': 'HTTP/1.1',
'SERVER_SOFTWARE': 'WSGIServer/0.2',
'wsgi.errors': <_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'>,
'wsgi.file_wrapper': <class 'wsgiref.util.FileWrapper'>,
'wsgi.input': <_io.BufferedReader name=5>,
'wsgi.multiprocess': False,
'wsgi.multithread': True,
'wsgi.run_once': False,
'wsgi.url_scheme': 'http',
'wsgi.version': (1, 0)}
[29/Jul/2015 14:52:08] DEBUG [djradicale:256] Sanitized path: /testuser/
[29/Jul/2015 14:52:08] DEBUG [djradicale:55] Rights type 'djradicale.rights.django'
[29/Jul/2015 14:52:08] DEBUG [djradicale:62] Test if 'testuser:testuser' matches against '.+:^testuser/[a-z0-9\.\-_]+\.(vcf|ics)$' from section 'rw'
[29/Jul/2015 14:52:08] DEBUG [djradicale:71] Section 'rw' does not match
[29/Jul/2015 14:52:08] DEBUG [djradicale:204] testuser has NO read access to collection testuser/
[29/Jul/2015 14:52:08] DEBUG [djradicale:55] Rights type 'djradicale.rights.django'
[29/Jul/2015 14:52:08] DEBUG [djradicale:62] Test if 'testuser:testuser' matches against '.+:^testuser/[a-z0-9\.\-_]+\.(vcf|ics)$' from section 'rw'
[29/Jul/2015 14:52:08] DEBUG [djradicale:71] Section 'rw' does not match
[29/Jul/2015 14:52:08] DEBUG [djradicale:216] testuser has NO write access to collection testuser/
[29/Jul/2015 14:52:08] DEBUG [djradicale:321] Request content:
<?xml version="1.0" encoding="UTF-8"?>
<A:propfind xmlns:A="DAV:">
<A:prop>
<B:addressbook-home-set xmlns:B="urn:ietf:params:xml:ns:carddav"/>
<B:directory-gateway xmlns:B="urn:ietf:params:xml:ns:carddav"/>
<A:displayname/>
<C:email-address-set xmlns:C="http://calendarserver.org/ns/"/>
<A:principal-collection-set/>
<A:principal-URL/>
<A:resource-id/>
<A:supported-report-set/>
</A:prop>
</A:propfind>
[29/Jul/2015 14:52:08] DEBUG [djradicale:349] Response content:
<?xml version="1.0"?>
<multistatus xmlns="DAV:" />
[29/Jul/2015 14:52:08] DEBUG [djradicale:358] Answer status: 207 Unknown
[29/Jul/2015 14:52:11] DEBUG [djradicale:34] Authentication type is custom
[29/Jul/2015 14:52:11] INFO [djradicale:247] OPTIONS request at /pim/testuser/ received
[29/Jul/2015 14:52:11] DEBUG [djradicale:249] Request headers:
{'CONTENT_LENGTH': '0',
'CONTENT_TYPE': 'text/plain',
'CSRF_COOKIE': 'u2vb0TEPipyKwxZkkLljm3XBLSMoSDFt',
'GATEWAY_INTERFACE': 'CGI/1.1',
'HTTP_ACCEPT': '*/*',
'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
'HTTP_ACCEPT_LANGUAGE': 'en-us',
'HTTP_AUTHORIZATION': 'Basic dGVzdHVzZXI6dGVzdA==',
'HTTP_CONNECTION': 'keep-alive',
'HTTP_HOST': '127.0.0.1:8000',
'HTTP_USER_AGENT': 'Mac OS X/10.10.4 (14E46) AddressBook/1579',
'PATH_INFO': '/pim/testuser/',
'QUERY_STRING': '',
'REMOTE_ADDR': '127.0.0.1',
'REMOTE_HOST': '',
'REQUEST_METHOD': 'OPTIONS',
'SCRIPT_NAME': '',
'SERVER_NAME': '1.0.0.127.in-addr.arpa',
'SERVER_PORT': '8000',
'SERVER_PROTOCOL': 'HTTP/1.1',
'SERVER_SOFTWARE': 'WSGIServer/0.2',
'wsgi.errors': <_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'>,
'wsgi.file_wrapper': <class 'wsgiref.util.FileWrapper'>,
'wsgi.input': <_io.BufferedReader name=5>,
'wsgi.multiprocess': False,
'wsgi.multithread': True,
'wsgi.run_once': False,
'wsgi.url_scheme': 'http',
'wsgi.version': (1, 0)}
[29/Jul/2015 14:52:11] DEBUG [djradicale:256] Sanitized path: /testuser/
[29/Jul/2015 14:52:11] DEBUG [djradicale:55] Rights type 'djradicale.rights.django'
[29/Jul/2015 14:52:11] DEBUG [djradicale:62] Test if 'testuser:testuser' matches against '.+:^testuser/[a-z0-9\.\-_]+\.(vcf|ics)$' from section 'rw'
[29/Jul/2015 14:52:11] DEBUG [djradicale:71] Section 'rw' does not match
[29/Jul/2015 14:52:11] DEBUG [djradicale:204] testuser has NO read access to collection testuser/
[29/Jul/2015 14:52:11] DEBUG [djradicale:55] Rights type 'djradicale.rights.django'
[29/Jul/2015 14:52:11] DEBUG [djradicale:62] Test if 'testuser:testuser' matches against '.+:^testuser/[a-z0-9\.\-_]+\.(vcf|ics)$' from section 'rw'
[29/Jul/2015 14:52:11] DEBUG [djradicale:71] Section 'rw' does not match
[29/Jul/2015 14:52:11] DEBUG [djradicale:216] testuser has NO write access to collection testuser/
[29/Jul/2015 14:52:11] DEBUG [djradicale:358] Answer status: 200 OK
[29/Jul/2015 14:52:11] DEBUG [djradicale:34] Authentication type is custom
[29/Jul/2015 14:52:11] INFO [djradicale:247] PROPFIND request at /pim/testuser/ received
[29/Jul/2015 14:52:11] DEBUG [djradicale:249] Request headers:
{'CONTENT_LENGTH': '439',
'CONTENT_TYPE': 'text/xml',
'CSRF_COOKIE': 'xtYN4N5qsn25dhk9vibrcWgPLGHOWQx7',
'GATEWAY_INTERFACE': 'CGI/1.1',
'HTTP_ACCEPT': '*/*',
'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
'HTTP_ACCEPT_LANGUAGE': 'en-us',
'HTTP_AUTHORIZATION': 'Basic dGVzdHVzZXI6dGVzdA==',
'HTTP_BRIEF': 't',
'HTTP_CONNECTION': 'keep-alive',
'HTTP_DEPTH': '0',
'HTTP_HOST': '127.0.0.1:8000',
'HTTP_PREFER': 'return=minimal',
'HTTP_USER_AGENT': 'Mac OS X/10.10.4 (14E46) AddressBook/1579',
'PATH_INFO': '/pim/testuser/',
'QUERY_STRING': '',
'REMOTE_ADDR': '127.0.0.1',
'REMOTE_HOST': '',
'REQUEST_METHOD': 'PROPFIND',
'SCRIPT_NAME': '',
'SERVER_NAME': '1.0.0.127.in-addr.arpa',
'SERVER_PORT': '8000',
'SERVER_PROTOCOL': 'HTTP/1.1',
'SERVER_SOFTWARE': 'WSGIServer/0.2',
'wsgi.errors': <_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'>,
'wsgi.file_wrapper': <class 'wsgiref.util.FileWrapper'>,
'wsgi.input': <_io.BufferedReader name=5>,
'wsgi.multiprocess': False,
'wsgi.multithread': True,
'wsgi.run_once': False,
'wsgi.url_scheme': 'http',
'wsgi.version': (1, 0)}
[29/Jul/2015 14:52:11] DEBUG [djradicale:256] Sanitized path: /testuser/
[29/Jul/2015 14:52:11] DEBUG [djradicale:55] Rights type 'djradicale.rights.django'
[29/Jul/2015 14:52:11] DEBUG [djradicale:62] Test if 'testuser:testuser' matches against '.+:^testuser/[a-z0-9\.\-_]+\.(vcf|ics)$' from section 'rw'
[29/Jul/2015 14:52:11] DEBUG [djradicale:71] Section 'rw' does not match
[29/Jul/2015 14:52:11] DEBUG [djradicale:204] testuser has NO read access to collection testuser/
[29/Jul/2015 14:52:11] DEBUG [djradicale:55] Rights type 'djradicale.rights.django'
[29/Jul/2015 14:52:11] DEBUG [djradicale:62] Test if 'testuser:testuser' matches against '.+:^testuser/[a-z0-9\.\-_]+\.(vcf|ics)$' from section 'rw'
[29/Jul/2015 14:52:11] DEBUG [djradicale:71] Section 'rw' does not match
[29/Jul/2015 14:52:11] DEBUG [djradicale:216] testuser has NO write access to collection testuser/
[29/Jul/2015 14:52:11] DEBUG [djradicale:321] Request content:
<?xml version="1.0" encoding="UTF-8"?>
<A:propfind xmlns:A="DAV:">
<A:prop>
<B:addressbook-home-set xmlns:B="urn:ietf:params:xml:ns:carddav"/>
<B:directory-gateway xmlns:B="urn:ietf:params:xml:ns:carddav"/>
<A:displayname/>
<C:email-address-set xmlns:C="http://calendarserver.org/ns/"/>
<A:principal-collection-set/>
<A:principal-URL/>
<A:resource-id/>
<A:supported-report-set/>
</A:prop>
</A:propfind>
[29/Jul/2015 14:52:11] DEBUG [djradicale:349] Response content:
<?xml version="1.0"?>
<multistatus xmlns="DAV:" />
[29/Jul/2015 14:52:11] DEBUG [djradicale:358] Answer status: 207 Unknown
View and moderate all "tickets Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Tickets"
Originally posted by: okami-1
Did you added this to your global urlpatterns?
View and moderate all "tickets Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Tickets"
Originally posted by: Proper-Job
Yes, my urlpatterns:
View and moderate all "tickets Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Tickets"
Originally posted by: okami-1
Looks like a problem with autodiscovery.
You can try by adding 'rw' permission to user's directory, something like this:
View and moderate all "tickets Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Tickets"
Originally posted by: Proper-Job
Hmm, that seems to help a bit but still no success in autodiscovery. In some request it succeeds now. I have very little knowledge how that works with carddav, so I am a bit lost here.
View and moderate all "tickets Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Tickets"
Originally posted by: okami-1
If your default Radicale setup is working (without django at all), then there is a problem with handling "/.well-known/carddav" urls.
".well-known" urls was broken in Radicale a long time ago, so I made a workaround. djradicale is handling ".well-known" urls by himself and redirecting client to default hardcoded addressbook or calendar url.
You can try to replace a line
with a something like
to skip my workaround and pass the ".well-known" urls to Radicale.
I did not tested it, because I don't have an Apple PC.
View and moderate all "tickets Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Tickets"
Ticket changed by: okami-1
View and moderate all "tickets Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Tickets"
Ticket changed by: okami-1
View and moderate all "tickets Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Tickets"
Originally posted by: max-pfeiffer
Yes, I learned from the radicale site that .well-known urls became fixed in V0.10. With the change the request is forwarded to radicale:
In radicales init.py the function "def call(self, environ, start_response):" gets called. it creates a redirect which failes. The result is a 404:
View and moderate all "tickets Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Tickets"
Originally posted by: okami-1
I has updated an app, so it should be working now. It depends on the configuration of the urls.py. I can't test it because I don't have an Apple PC.
View and moderate all "tickets Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Tickets"
Originally posted by: max-pfeiffer
I just pulled your changes and did another test run. I used the forward for the radicale well-known-urls.
I now get 404s on different occasions:
View and moderate all "tickets Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Tickets"
Originally posted by: okami-1
But he should. Check your permissions.
You will need this regexp '^%(login)s/[a-z0-9.-_]+.(vcf|ics)$' for accessing a collection,
and this regexp '^%(login)s$' for getting a list of your collections in autodiscovery process.
So you need both permissions.
Looks like a wrong redirect path. You need to update your settings. There is a new section has been added in Radicale 0.10 and it does not uses a prefix, so you should change it to something like that:
I has already updated a README.