Recentemente, atualizamos nosso Open Directory Master & Réplica para o Mac OS X 10.6.4 Snow Leopard Server. Tivemos um servidor FQDN & LDAP Search Base / Kerberos Realm, então exportamos todos os usuários & grupos, criou o novo Open Directory Master com correspondência FQDN & Pesquisa Base / Realm, reimported users & grupos e religar todos os servidores & estações de trabalho para o novo OD Mestre.
Ao mesmo tempo, atualizamos nosso servidor iCal / CalDAV para o Mac OS X 10.6.4 Snow Leopard Server. Desde então, vimos os seguintes problemas com nosso servidor iCal / CalDAV e clientes iCal no Mac OS X 10.5 Leopard & Mac OS X 10.6:
-
Se um usuário tentar mover ou excluir um evento (único ou repetitivo) que foi criado antes da atualização para o 10.6 Server, ele obterá o seguinte erro:
Access to "blah" in "blah" in account "blah" is not permitted.
The server responded:
"HTTP/1.1 403 Forbidden" to operation CalDAVWriteEntityQueueableOperation.
-
Novos usuários adicionados ao diretório obtêm o seguinte erro ao tentar adicionar sua conta nas preferências do iCal:
The user "blah" has no configured pricipals.
Confirm with your network administrator that your account has at least one CalDAV principal configured.
Curiosamente, descobrimos que os usuários parecem poder excluir eventos individuais de um evento antigo sem erros, mas isso é uma grande quantidade de trabalho para se livrar de um evento repetitivo.
Eu notarei que não ainda adicionamos um registro SRV no DNS conforme instruído na página 19 do iCal_Server_Admin_v10.6.pdf.
Investigação adicional:
Neste caso específico, um usuário está tentando recusar a repetição de eventos criados antes da atualização para o Snow Leopard Server. Conceder ao usuário acesso de gravação completo com sudo calendarserver_manage_principals --add-write-proxy users:user1 users:user2
(que funcionou) não permite a exclusão dos eventos. Ainda recebe o erro comum:
Access to "blah blah" in "blah blah" in account "blah blah" is not permitted.
The server responded:
"HTTP/1.1 403 Forbidden"
to operation CalDAVWriteEntityQueueableOperation.
O erro exibido em /var/log/caldavd/error.log no iCal Server ao tentar excluir um dos eventos é:
2011-03-17 15:14:30-0400 [-] [caldav-8009] [PooledMemCacheProtocol,client] [twistedcaldav.extensions#info] PUT /calendars/__uids__/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/calendar/XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX.ics HTTP/1.1 2011-03-17 15:14:30-0400 [-] [caldav-8009] [PooledMemCacheProtocol,client] [twistedcaldav.scheduling.implicit#error] Cannot change ORGANIZER: UID:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
E o erro em /var/log/system.log no cliente é:
Mar 17 15:14:30 192-168-21-169-dhcp iCal[33509]: CalDAV CalDAVWriteEntityQueueableOperation failed: status 'HTTP/1.1 403 Forbidden' request:\n\nBEGIN:VCALENDAR^M\nVERSION:2.0^M\nPRODID:-//Apple Inc.//iCal 3.0//EN^M\nCALSCALE:GREGORIAN^M\nBEGIN:VTIMEZONE^M\nTZID:US/Eastern^M\nBEGIN:DAYLIGHT^M\nTZOFFSETFROM:-0500^M\nTZOFFSETTO:-0400^M\nDTSTART:20070311T020000^M\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU^M\nTZNAME:EDT^M\nEND:DAYLIGHT^M\nBEGIN:STANDARD^M\nTZOFFSETFROM:-0400^M\nTZOFFSETTO:-0500^M\nDTSTART:20071104T020000^M\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU^M\nTZNAME:EST^M\nEND:STANDARD^M\nEND:VTIMEZONE^M\nBEGIN:VEVENT^M\nSEQUENCE:5^M\nDTSTART;TZID=US/Eastern:20090117T094500^M\nDTSTAMP:20081227T143043Z^M\nSUMMARY:blah blah^M\nATTENDEE;CN="First Last";CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT:urn:uuid^M\n :XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX^M\nATTENDEE;CN="First Last";CUTYPE=INDIVIDUAL;PARTSTAT=ACCEPTED:mailto:user@d^M\n omain.tld^M\nEXDATE;TZID=US/Eastern:20110319T094500^M\nDTEND;TZID=US/Eastern:20090117T183000^M\nRRULE:FREQ=WEEKLY;INTERVAL=1^M\nTRANSP:OPAQUE^M\nUID:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX^M\nORGANIZER;CN="First Last":mailto:[email protected]^M\nX-WR-ITIPSTATUSML:UNCLEAN^M\nCREATED:20110317T191348Z^M\nEND:VEVENT^M\nEND:VCALENDAR^M\n\n\n... response:\nHTTP/1.1 403 Forbidden^M\nDate: Thu, 17 Mar 2011 19:14:30 GMT^M\nDav: 1, access-control, calendar-access, calendar-schedule, calendar-auto-schedule, calendar-availability, inbox-availability, calendar-proxy, calendarserver-private-events, calendarserver-private-comments, calendarserver-principal-property-search^M\nContent-Type: text/xml^M\nContent-Length: 134^M\nServer: Twisted/8.2.0 TwistedWeb/8.2.0 TwistedCalDAV/2.5 (iCal Server v12.56.21)^M\n^M\n<?xml version='1.0' encoding='UTF-8'?><error xmlns='DAV:'>^M\n <valid-attendee-change xmlns='urn:ietf:params:xml:ns:caldav'/>^M\n</error>
Uma coisa que eu notei, e não tenho certeza se isso tem algum efeito real é que em muitos desses eventos de migração do pré-Snow Leopard Server, o ORGANIZADOR é especificado da seguinte forma:
ORGANIZER;CN=First Last:mailto:[email protected]
Mas os mais novos são mais parecidos com um dos dois seguintes:
ORGANIZER;CN=First Last;[email protected];SCHEDULE-STATUS=1
ORGANIZER;CN=First Last;[email protected]:urn:uuid:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
iCal_Server_Admin_v10.6.pdf observa que os arquivos ".db.sqlite" são completamente descartáveis, eles são meramente um cache de desempenho e são reconstruídos rapidamente, portanto, é seguro excluir. Eu deletei o dos calendários do organizador e demorei mais para processar a tentativa de exclusão do evento enquanto ele reconstruía o banco de dados, mas ainda assim cometi um erro no final.
FWIW o erro é lançado por este código:
link
Alguma outra sugestão? Eu vejo muitas perguntas sobre isso em minhas pesquisas do Google, mas não soluções e isso é um problema generalizado no nosso iCal Server. Agora, na maioria das vezes tentamos fazer com que os usuários os ignorem (daí a quantidade de tempo que essa questão foi aberta), mas de vez em quando eu me aprofundo tentando encontrar o culpado e / ou a solução.