[CalendarServer-dev] [CalendarServer] #309: group and attendee bug

CalendarServer trac at macosforge.org
Sat Jan 24 06:52:38 PST 2009


#309: group and attendee bug
-------------------------------+--------------------------------------------
  Reporter:  jduffas1@…        |       Owner:  sagen@…           
      Type:  Defect            |      Status:  new               
  Priority:  2: Expected       |   Milestone:  CalendarServer-2.x
 Component:  Calendar Server   |    Severity:  Serious           
Resolution:                    |    Keywords:  group attendee    
-------------------------------+--------------------------------------------

Comment(by AxelLuttgens@…):

 Sorry, I can't fully reproduce the behavior described by jduffas1's
 anymore; as I'm currently performing a lot of trials, I don't remember
 which settings might have changed, if any.[[BR]]
 But I still can reproduce a similar behavior, and it seems to be a pure
 iCal thing.

 I'm testing against a local OpenDirectory node (no xml file, thus).[[BR]]
 I've imaginatevely created three users: "caluser01", "caluser02" and
 "caluser03", with their email addresses (hereafter shown as
 @example.com).[[BR]]
 Those three users belong to group "calusers".[[BR]]
 Users "caluser01" and "caluser03" also belong to group "calgroup01".[[BR]]
 Finally, group "calendarmaingroup" encompasses groups "calusers" and
 "calgroup01".

 As far as caldavd.plist is concerned, here are the relevant pieces:

 {{{
         [...]
         <key>DirectoryService</key>
         <dict>
                 <key>type</key>
 <string>twistedcaldav.directory.appleopendirectory.OpenDirectoryService</string>
                 <key>params</key>
                 <dict>
                         [...]
                         <key>restrictEnabledRecords</key>
                         <true/>
                         <key>restrictToGroup</key>
                         <string>calendarmaingroup</string>
                         [...]
                 </dict>
         </dict>
         [...]
         <key>Scheduling</key>
         <dict>
                 <key>Options</key>
                 <dict>
                         <key>AllowGroupAsOrganizer</key>
                         <false/>
                 </dict>
                 [...]
         </dict>
         [...]
 }}}

 Finally, in iCal, create an account for group "calgroup01", connecting as
 user "caluser01"; here, the account's URL is:

 {{{
 http://127.0.0.1:8008/principals/__uids__/5B470445-7587-4DCE-
 AD09-E5135A57A45A/
 }}}

 Now, in the group's calendar, create an event; in the attendees field,
 enter "caluser02 at example.com" and validate the entry by hitting the tab
 key (don't click on the send button yet).[[BR]]
 Here's the exchange with the server:

 {{{
 POST /calendars/__uids__/5B470445-7587-4DCE-AD09-E5135A57A45A/outbox/
 HTTP/1.1
 User-Agent: DAVKit/3.0.6 (653); CalendarStore/3.0.6 (847); iCal/3.0.6
 (1273); Mac OS X/10.5.6 (9G55)
 Authorization: Basic ******
 Recipient: mailto:caluser02 at example.com
 Content-Type: text/calendar
 Originator: /principals/groups/calgroup01/
 Content-Length: 491
 Connection: keep-alive
 Host: 127.0.0.1:8008

 BEGIN:VCALENDAR
 PRODID:-//Apple Inc.//iCal 3.0//EN
 CALSCALE:GREGORIAN
 VERSION:2.0
 METHOD:REQUEST
 BEGIN:VFREEBUSY
 DTSTART:20090129T130000Z
 UID:180EBF3D-A788-4C34-ADDA-4EF048306553
 ORGANIZER:/principals/groups/calgroup01/
 DTSTAMP:20090124T125509Z
 SUMMARY:Availability for mailto:caluser02 at example.com
 ATTENDEE:mailto:caluser02 at example.com
 CREATED:20090124T125509Z
 DTEND:20090129T140000Z
 X-CALENDARSERVER-MASK-UID:7234E524-895A-4A85-B423-D0485933FC1E
 END:VFREEBUSY
 END:VCALENDAR


 HTTP/1.1 403 Forbidden
 Date: Sat, 24 Jan 2009 12:55:09 GMT
 DAV: 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
 Content-Type: text/xml
 Content-Length: 134
 Server: Twisted/2.5.0+rUnknown TwistedWeb/[twisted.web2, version 0.2.0
 (SVN rUnknown)] TwistedCalDAV/?

 <?xml version='1.0' encoding='UTF-8'?>
 <error xmlns='DAV:'>
   <organizer-allowed xmlns='urn:ietf:params:xml:ns:caldav'/>
 </error>
 }}}

 The server thus clearly states that something is going to be wrong; but
 perhaps isn't the error kind exactly the relevant one?[[BR]]
 Anyway, Safari doesn't seem to care at all, doesn't display any error
 dialog, and the send button is still available; so, let's click on it:

 {{{
 POST /calendars/__uids__/5B470445-7587-4DCE-AD09-E5135A57A45A/outbox/
 HTTP/1.1
 User-Agent: DAVKit/3.0.6 (653); CalendarStore/3.0.6 (847); iCal/3.0.6
 (1273); Mac OS X/10.5.6 (9G55)
 Authorization: Basic ******
 Recipient: mailto:caluser02 at example.com
 Content-Type: text/calendar
 Originator: /principals/groups/calgroup01/
 Content-Length: 972
 Connection: keep-alive
 Host: 127.0.0.1:8008

 BEGIN:VCALENDAR
 PRODID:-//Apple Inc.//iCal 3.0//EN
 CALSCALE:GREGORIAN
 VERSION:2.0
 METHOD:REQUEST
 BEGIN:VTIMEZONE
 TZID:Europe/Brussels
 BEGIN:DAYLIGHT
 TZOFFSETFROM:+0100
 TZOFFSETTO:+0200
 DTSTART:19810329T020000
 RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
 TZNAME:CEST
 END:DAYLIGHT
 BEGIN:STANDARD
 TZOFFSETFROM:+0200
 TZOFFSETTO:+0100
 DTSTART:19961027T030000
 RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
 TZNAME:CET
 END:STANDARD
 END:VTIMEZONE
 BEGIN:VEVENT
 SEQUENCE:2
 DTSTART;TZID=Europe/Brussels:20090129T140000
 DURATION:PT1H
 UID:7234E524-895A-4A85-B423-D0485933FC1E
 ORGANIZER;CN="Calendar group 01":/principals/groups/calgroup01/
 DTSTAMP:20090124T125509Z
 SUMMARY:Nouvel ..v..nement
 ATTENDEE;CN="caluser02 at example.com";CUTYPE=INDIVIDUAL;PARTSTAT=NEEDS-ACTI
  ON;ROLE=REQ-PARTICIPANT;RSVP=TRUE:mailto:caluser02 at example.com
 ATTENDEE;CN="Calendar group 01";PARTSTAT=ACCEPTED:/principals/groups/cal
  group01/
 CREATED:20090124T125451Z
 END:VEVENT
 END:VCALENDAR


 HTTP/1.1 403 Forbidden
 Date: Sat, 24 Jan 2009 12:56:25 GMT
 DAV: 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
 Content-Type: text/xml
 Content-Length: 134
 Server: Twisted/2.5.0+rUnknown TwistedWeb/[twisted.web2, version 0.2.0
 (SVN rUnknown)] TwistedCalDAV/?

 <?xml version='1.0' encoding='UTF-8'?>
 <error xmlns='DAV:'>
   <organizer-allowed xmlns='urn:ietf:params:xml:ns:caldav'/>
 </error>
 }}}

 And now iCal is stuck: the spinning wheel appears against the account's
 name, and the client can't do anything more with the group's
 calendar.[[BR]]
 One has to quit iCal and to delete the spurious entry from it's local
 cache (in ~/Library/Calendars).[[BR]]
 Or to quit iCal and to restart the server after having set
 AllowGroupAsOrganizer to true in caldav.plist.

 When sending the event immediately, without the prior validation of the
 attendee's email address, iCal displays an error message ("HTTP/1.1 403
 Forbidden" for CalDAVWriteEntityQueueableOperation), but otherwise behaves
 the same way and requires the same cure...

-- 
Ticket URL: <http://trac.calendarserver.org/ticket/309#comment:6>
CalendarServer </>
HTTP/WebDAV/CalDAV Server


More information about the calendarserver-dev mailing list