diff --git a/inc/Principal.php b/inc/Principal.php
index 65834f4d..3f7593e3 100644
--- a/inc/Principal.php
+++ b/inc/Principal.php
@@ -97,7 +97,10 @@ class Principal {
*/
private $cacheNs;
private $cacheKey;
-
+
+ protected $collections;
+ protected $dead_properties;
+ protected $default_calendar;
function __construct( $type, $value, $use_cache=true ) {
global $c, $session;
@@ -364,6 +367,77 @@ class Principal {
}
+ /**
+ * Ensure the principal's dead properties are loaded
+ */
+ protected function FetchDeadProperties() {
+ if ( isset($this->dead_properties) ) return;
+
+ $this->dead_properties = array();
+ $qry = new AwlQuery('SELECT property_name, property_value FROM property WHERE dav_name= :dav_name', array(':dav_name' => $this->dav_name()) );
+ if ( $qry->Exec('Principal') ) {
+ while ( $property = $qry->Fetch() ) {
+ $this->dead_properties[$property->property_name] = $property->property_value;
+ }
+ }
+ }
+
+
+ /**
+ * Fetch the list of collections for this principal
+ * @return string The internal dav_name for the home_calendar, or null if there is none
+ */
+ protected function FetchCollections() {
+ if ( isset($this->collections) ) return;
+
+ $this->collections = array();
+ $qry = new AwlQuery('SELECT * FROM collection WHERE user_no= :user_no', array(':user_no' => $this->user_no()) );
+ if ( $qry->Exec('Principal') ) {
+ while ( $collection = $qry->Fetch() ) {
+ $this->collections[$collection->dav_name] = $collection;
+ }
+ }
+ }
+
+
+ /**
+ * Return the default calendar for this principal
+ * @return string The internal dav_name for the home_calendar, or false if there is none
+ */
+ function default_calendar() {
+ global $c;
+
+ if ( !isset($this->default_calendar) ) {
+ $this->default_calendar = false;
+ if ( !isset($this->dead_properties) ) $this->FetchDeadProperties();
+ if ( isset($this->dead_properties['urn:ietf:params:xml:ns:caldav:schedule-default-calendar-URL']) ) {
+ $this->default_calendar = $this->dead_properties['urn:ietf:params:xml:ns:caldav:schedule-default-calendar-URL'];
+ }
+ else {
+ if ( !isset($this->collections) ) $this->FetchCollections();
+ $dav_name = $this->dav_name().$c->home_calendar_name.'/';
+ if ( isset($this->collections[$dav_name]) && ($this->collections[$dav_name]->is_calendar == 't') ) {
+ $this->default_calendar = $dav_name;
+ }
+ else {
+ $dav_name = $this->dav_name().'home/';
+ if ( isset($this->collections[$dav_name]) && ($this->collections[$dav_name]->is_calendar == 't') ) {
+ $this->default_calendar = $dav_name;
+ }
+ else {
+ foreach( $this->collections AS $dav_name => $collection ) {
+ if ( $collection->is_calendar == 't' ) {
+ $this->default_calendar = $dav_name;
+ }
+ }
+ }
+ }
+ }
+ }
+ return $this->default_calendar;
+ }
+
+
/**
* Return the URL for this principal
* @param string $type The type of URL we want (the principal, by default)
@@ -384,7 +458,7 @@ class Principal {
switch( $type ) {
case 'principal': break;
- case 'schedule-default-calendar': $result .= $c->home_calendar_name; break;
+ case 'schedule-default-calendar': $result = $this->default_calendar(); break;
case 'schedule-inbox': $result .= '.in/'; break;
case 'schedule-outbox': $result .= '.out/'; break;
case 'dropbox': $result .= '.drop/'; break;
diff --git a/testing/tests/regression-suite/0532-iCal4-PROPFIND.result b/testing/tests/regression-suite/0532-iCal4-PROPFIND.result
index 7766b1b3..a49014fe 100644
--- a/testing/tests/regression-suite/0532-iCal4-PROPFIND.result
+++ b/testing/tests/regression-suite/0532-iCal4-PROPFIND.result
@@ -2,8 +2,8 @@ HTTP/1.1 207 Multi-Status
Date: Dow, 01 Jan 2000 00:00:00 GMT
DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule
DAV: extended-mkcol, calendar-proxy, bind, addressbook, calendar-auto-schedule
-ETag: "b0a852bb7a7c95269f916f12bbcbdb10"
-Content-Length: 15088
+ETag: "e7cd1ee6cd4eb1e0e2aaa1d2b5a0bfb1"
+Content-Length: 15648
Content-Type: text/xml; charset="utf-8"
@@ -23,6 +23,9 @@ Content-Type: text/xml; charset="utf-8"
/caldav.php/user1/created/
/caldav.php/user1/6E20BB7C-EFD9-4F0F-9BDC-5335E04D47E0/
+
+ /user1/home/
+
@@ -70,7 +73,6 @@ Content-Type: text/xml; charset="utf-8"
-
@@ -100,6 +102,9 @@ Content-Type: text/xml; charset="utf-8"
/caldav.php/user1/created/
/caldav.php/user1/6E20BB7C-EFD9-4F0F-9BDC-5335E04D47E0/
+
+ /user1/home/
+
@@ -149,7 +154,6 @@ Content-Type: text/xml; charset="utf-8"
-
@@ -179,6 +183,9 @@ Content-Type: text/xml; charset="utf-8"
/caldav.php/user1/created/
/caldav.php/user1/6E20BB7C-EFD9-4F0F-9BDC-5335E04D47E0/
+
+ /user1/home/
+
@@ -228,7 +235,6 @@ Content-Type: text/xml; charset="utf-8"
-
@@ -256,6 +262,9 @@ Content-Type: text/xml; charset="utf-8"
/caldav.php/user1/created/
/caldav.php/user1/6E20BB7C-EFD9-4F0F-9BDC-5335E04D47E0/
+
+ /user1/home/
+
@@ -314,7 +323,6 @@ Content-Type: text/xml; charset="utf-8"
-
@@ -342,6 +350,9 @@ Content-Type: text/xml; charset="utf-8"
/caldav.php/user1/created/
/caldav.php/user1/6E20BB7C-EFD9-4F0F-9BDC-5335E04D47E0/
+
+ /user1/home/
+
@@ -400,7 +411,6 @@ Content-Type: text/xml; charset="utf-8"
-
@@ -431,6 +441,9 @@ Content-Type: text/xml; charset="utf-8"
/caldav.php/user1/created/
/caldav.php/user1/6E20BB7C-EFD9-4F0F-9BDC-5335E04D47E0/
+
+ /user1/home/
+
@@ -479,7 +492,6 @@ Content-Type: text/xml; charset="utf-8"
-
@@ -502,6 +514,9 @@ Content-Type: text/xml; charset="utf-8"
/caldav.php/user1/created/
/caldav.php/user1/6E20BB7C-EFD9-4F0F-9BDC-5335E04D47E0/
+
+ /user1/home/
+
@@ -552,7 +567,6 @@ Content-Type: text/xml; charset="utf-8"
-
@@ -575,6 +589,9 @@ Content-Type: text/xml; charset="utf-8"
/caldav.php/user1/created/
/caldav.php/user1/6E20BB7C-EFD9-4F0F-9BDC-5335E04D47E0/
+
+ /user1/home/
+
@@ -625,7 +642,6 @@ Content-Type: text/xml; charset="utf-8"
-
diff --git a/testing/tests/regression-suite/0541-iCal4-PROPFIND.result b/testing/tests/regression-suite/0541-iCal4-PROPFIND.result
index e1bf0d45..5850e03c 100644
--- a/testing/tests/regression-suite/0541-iCal4-PROPFIND.result
+++ b/testing/tests/regression-suite/0541-iCal4-PROPFIND.result
@@ -2,8 +2,8 @@ HTTP/1.1 207 Multi-Status
Date: Dow, 01 Jan 2000 00:00:00 GMT
DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule
DAV: extended-mkcol, calendar-proxy, bind, addressbook, calendar-auto-schedule
-ETag: "19e51f9bc18826db107f6b07900cea8a"
-Content-Length: 1388
+ETag: "f979bd69bf442e8e93634acdea5bb42b"
+Content-Length: 1457
Content-Type: text/xml; charset="utf-8"
@@ -22,6 +22,9 @@ Content-Type: text/xml; charset="utf-8"
+
+ /user1/home/
+
BEGIN:VCALENDAR
PRODID:-//davical.org//NONSGML AWL Calendar//EN
VERSION:2.0
@@ -52,7 +55,6 @@ END:VCALENDAR
-
HTTP/1.1 404 Not Found
diff --git a/testing/tests/scheduling/3010-PUT-with-attendees.result b/testing/tests/scheduling/3010-PUT-with-attendees.result
index 47889a22..b09f132a 100644
--- a/testing/tests/scheduling/3010-PUT-with-attendees.result
+++ b/testing/tests/scheduling/3010-PUT-with-attendees.result
@@ -5,67 +5,526 @@ Date: Dow, 01 Jan 2000 00:00:00 GMT
DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule
DAV: extended-mkcol, calendar-proxy, bind, addressbook, calendar-auto-schedule
ETag: "e69b6d5b70189b96126c8993bcf1648a"
-Content-Length: 0
+Content-Length: 112
Content-Type: text/plain; charset="utf-8"
+Notice: Undefined variable: log_action in /home/karora/projects/davical/inc/WritableCollection.php on line 259
+
+ caldav_data: >BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Apple Inc.//iCal 3.0//EN
+CALSCALE:GREGORIAN
+BEGIN:VTIMEZONE
+TZID:Pacific/Auckland
+BEGIN:STANDARD
+TZOFFSETFROM:+1300
+TZOFFSETTO:+1200
+DTSTART:19900318T030000
+RRULE:FREQ=YEARLY;UNTIL=20070317T140000Z;BYMONTH=3;BYDAY=3SU
+TZNAME:NZST
+END:STANDARD
+BEGIN:DAYLIGHT
+TZOFFSETFROM:+1200
+TZOFFSETTO:+1300
+DTSTART:20070930T020000
+RRULE:FREQ=YEARLY;BYMONTH=9;BYDAY=-1SU
+TZNAME:NZDT
+END:DAYLIGHT
+BEGIN:STANDARD
+TZOFFSETFROM:+1300
+TZOFFSETTO:+1200
+DTSTART:20080406T030000
+RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU
+TZNAME:NZST
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+SEQUENCE:7
+DESCRIPTION:Masses of Lunch will be needed
+UID:PUT-attendees
+TRANSP:OPAQUE
+DTSTART;TZID=Pacific/Auckland:20101123T110000
+DTEND;TZID=Pacific/Auckland:20101123T160000
+DTSTAMP:20101124T221900Z
+SUMMARY:Multiple Beard Meeting
+CREATED:20071124T221521Z
+RRULE:FREQ=MONTHLY;INTERVAL=1;BYDAY=4TU
+ORGANIZER;CN=User 1:MAILTO:user1@example.net
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;
+ RSVP=TRUE;CN=User 1;LANGUAGE=en:MAILTO:user1@example.net
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;
+ RSVP=TRUE;CN=User 2;LANGUAGE=en:MAILTO:user2@example.net
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;
+ RSVP=TRUE;CN=User 3;LANGUAGE=en:MAILTO:user3@example.net
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;
+ RSVP=TRUE;CN=User 4;LANGUAGE=en:MAILTO:user4@example.net
+END:VEVENT
+END:VCALENDAR
+<
caldav_type: >VEVENT<
- dav_etag: >29961c088fb4666d00f6894e5dd3cfe8<
- dtend: >2010-11-23 16:00:00<
- dtstamp: >2010-11-24 22:19:00<
- dtstart: >2010-11-23 11:00:00<
- due: >NULL<
- location: >NULL<
+ dav_name: >/user1/home/PUT-attendees.ics<
logged_user: >10<
summary: >Multiple Beard Meeting<
- uid: >PUT-attendees<
user_no: >10<
+ caldav_data: >BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Apple Inc.//iCal 3.0//EN
+CALSCALE:GREGORIAN
+METHOD:REQUEST
+BEGIN:VTIMEZONE
+TZID:Pacific/Auckland
+BEGIN:STANDARD
+TZOFFSETFROM:+1300
+TZOFFSETTO:+1200
+DTSTART:19900318T030000
+RRULE:FREQ=YEARLY;UNTIL=20070317T140000Z;BYMONTH=3;BYDAY=3SU
+TZNAME:NZST
+END:STANDARD
+BEGIN:DAYLIGHT
+TZOFFSETFROM:+1200
+TZOFFSETTO:+1300
+DTSTART:20070930T020000
+RRULE:FREQ=YEARLY;BYMONTH=9;BYDAY=-1SU
+TZNAME:NZDT
+END:DAYLIGHT
+BEGIN:STANDARD
+TZOFFSETFROM:+1300
+TZOFFSETTO:+1200
+DTSTART:20080406T030000
+RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU
+TZNAME:NZST
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+SEQUENCE:7
+DESCRIPTION:Masses of Lunch will be needed
+UID:PUT-attendees
+TRANSP:OPAQUE
+DTSTART;TZID=Pacific/Auckland:20101123T110000
+DTEND;TZID=Pacific/Auckland:20101123T160000
+DTSTAMP:20101124T221900Z
+SUMMARY:Multiple Beard Meeting
+CREATED:20071124T221521Z
+RRULE:FREQ=MONTHLY;INTERVAL=1;BYDAY=4TU
+ORGANIZER;CN=User 1:MAILTO:user1@example.net
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RS
+ VP=TRUE;CN=User 1;LANGUAGE=en:MAILTO:user1@example.net
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RS
+ VP=TRUE;CN=User 2;LANGUAGE=en:MAILTO:user2@example.net
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RS
+ VP=TRUE;CN=User 3;LANGUAGE=en:MAILTO:user3@example.net
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RS
+ VP=TRUE;CN=User 4;LANGUAGE=en:MAILTO:user4@example.net
+END:VEVENT
+END:VCALENDAR
+<
caldav_type: >VEVENT<
- dav_etag: >29961c088fb4666d00f6894e5dd3cfe8<
- dtend: >2010-11-23 16:00:00<
- dtstamp: >2010-11-24 22:19:00<
- dtstart: >2010-11-23 11:00:00<
- due: >NULL<
- location: >NULL<
+ dav_name: >/user1/.in/PUT-attendees.ics<
+ logged_user: >10<
+ summary: >Multiple Beard Meeting<
+ user_no: >10<
+
+ caldav_data: >BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Apple Inc.//iCal 3.0//EN
+CALSCALE:GREGORIAN
+BEGIN:VTIMEZONE
+TZID:Pacific/Auckland
+BEGIN:STANDARD
+TZOFFSETFROM:+1300
+TZOFFSETTO:+1200
+DTSTART:19900318T030000
+RRULE:FREQ=YEARLY;UNTIL=20070317T140000Z;BYMONTH=3;BYDAY=3SU
+TZNAME:NZST
+END:STANDARD
+BEGIN:DAYLIGHT
+TZOFFSETFROM:+1200
+TZOFFSETTO:+1300
+DTSTART:20070930T020000
+RRULE:FREQ=YEARLY;BYMONTH=9;BYDAY=-1SU
+TZNAME:NZDT
+END:DAYLIGHT
+BEGIN:STANDARD
+TZOFFSETFROM:+1300
+TZOFFSETTO:+1200
+DTSTART:20080406T030000
+RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU
+TZNAME:NZST
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+SEQUENCE:7
+DESCRIPTION:Masses of Lunch will be needed
+UID:PUT-attendees
+TRANSP:OPAQUE
+DTSTART;TZID=Pacific/Auckland:20101123T110000
+DTEND;TZID=Pacific/Auckland:20101123T160000
+DTSTAMP:20101124T221900Z
+SUMMARY:Multiple Beard Meeting
+CREATED:20071124T221521Z
+RRULE:FREQ=MONTHLY;INTERVAL=1;BYDAY=4TU
+ORGANIZER;CN=User 1:MAILTO:user1@example.net
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;
+ RSVP=TRUE;CN=User 1;LANGUAGE=en:MAILTO:user1@example.net
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;
+ RSVP=TRUE;CN=User 2;LANGUAGE=en:MAILTO:user2@example.net
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;
+ RSVP=TRUE;CN=User 3;LANGUAGE=en:MAILTO:user3@example.net
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;
+ RSVP=TRUE;CN=User 4;LANGUAGE=en:MAILTO:user4@example.net
+END:VEVENT
+END:VCALENDAR
+<
+ caldav_type: >VEVENT<
+ dav_name: >/user2/home/PUT-attendees.ics<
logged_user: >10<
summary: >Multiple Beard Meeting<
- uid: >PUT-attendees<
user_no: >11<
+ caldav_data: >BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Apple Inc.//iCal 3.0//EN
+CALSCALE:GREGORIAN
+METHOD:REQUEST
+BEGIN:VTIMEZONE
+TZID:Pacific/Auckland
+BEGIN:STANDARD
+TZOFFSETFROM:+1300
+TZOFFSETTO:+1200
+DTSTART:19900318T030000
+RRULE:FREQ=YEARLY;UNTIL=20070317T140000Z;BYMONTH=3;BYDAY=3SU
+TZNAME:NZST
+END:STANDARD
+BEGIN:DAYLIGHT
+TZOFFSETFROM:+1200
+TZOFFSETTO:+1300
+DTSTART:20070930T020000
+RRULE:FREQ=YEARLY;BYMONTH=9;BYDAY=-1SU
+TZNAME:NZDT
+END:DAYLIGHT
+BEGIN:STANDARD
+TZOFFSETFROM:+1300
+TZOFFSETTO:+1200
+DTSTART:20080406T030000
+RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU
+TZNAME:NZST
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+SEQUENCE:7
+DESCRIPTION:Masses of Lunch will be needed
+UID:PUT-attendees
+TRANSP:OPAQUE
+DTSTART;TZID=Pacific/Auckland:20101123T110000
+DTEND;TZID=Pacific/Auckland:20101123T160000
+DTSTAMP:20101124T221900Z
+SUMMARY:Multiple Beard Meeting
+CREATED:20071124T221521Z
+RRULE:FREQ=MONTHLY;INTERVAL=1;BYDAY=4TU
+ORGANIZER;CN=User 1:MAILTO:user1@example.net
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RS
+ VP=TRUE;CN=User 1;LANGUAGE=en:MAILTO:user1@example.net
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RS
+ VP=TRUE;CN=User 2;LANGUAGE=en:MAILTO:user2@example.net
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RS
+ VP=TRUE;CN=User 3;LANGUAGE=en:MAILTO:user3@example.net
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RS
+ VP=TRUE;CN=User 4;LANGUAGE=en:MAILTO:user4@example.net
+END:VEVENT
+END:VCALENDAR
+<
caldav_type: >VEVENT<
- dav_etag: >29961c088fb4666d00f6894e5dd3cfe8<
- dtend: >2010-11-23 16:00:00<
- dtstamp: >2010-11-24 22:19:00<
- dtstart: >2010-11-23 11:00:00<
- due: >NULL<
- location: >NULL<
+ dav_name: >/user2/.in/PUT-attendees.ics<
+ logged_user: >10<
+ summary: >Multiple Beard Meeting<
+ user_no: >11<
+
+ caldav_data: >BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Apple Inc.//iCal 3.0//EN
+CALSCALE:GREGORIAN
+BEGIN:VTIMEZONE
+TZID:Pacific/Auckland
+BEGIN:STANDARD
+TZOFFSETFROM:+1300
+TZOFFSETTO:+1200
+DTSTART:19900318T030000
+RRULE:FREQ=YEARLY;UNTIL=20070317T140000Z;BYMONTH=3;BYDAY=3SU
+TZNAME:NZST
+END:STANDARD
+BEGIN:DAYLIGHT
+TZOFFSETFROM:+1200
+TZOFFSETTO:+1300
+DTSTART:20070930T020000
+RRULE:FREQ=YEARLY;BYMONTH=9;BYDAY=-1SU
+TZNAME:NZDT
+END:DAYLIGHT
+BEGIN:STANDARD
+TZOFFSETFROM:+1300
+TZOFFSETTO:+1200
+DTSTART:20080406T030000
+RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU
+TZNAME:NZST
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+SEQUENCE:7
+DESCRIPTION:Masses of Lunch will be needed
+UID:PUT-attendees
+TRANSP:OPAQUE
+DTSTART;TZID=Pacific/Auckland:20101123T110000
+DTEND;TZID=Pacific/Auckland:20101123T160000
+DTSTAMP:20101124T221900Z
+SUMMARY:Multiple Beard Meeting
+CREATED:20071124T221521Z
+RRULE:FREQ=MONTHLY;INTERVAL=1;BYDAY=4TU
+ORGANIZER;CN=User 1:MAILTO:user1@example.net
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;
+ RSVP=TRUE;CN=User 1;LANGUAGE=en:MAILTO:user1@example.net
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;
+ RSVP=TRUE;CN=User 2;LANGUAGE=en:MAILTO:user2@example.net
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;
+ RSVP=TRUE;CN=User 3;LANGUAGE=en:MAILTO:user3@example.net
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;
+ RSVP=TRUE;CN=User 4;LANGUAGE=en:MAILTO:user4@example.net
+END:VEVENT
+END:VCALENDAR
+<
+ caldav_type: >VEVENT<
+ dav_name: >/user3/home/PUT-attendees.ics<
logged_user: >10<
summary: >Multiple Beard Meeting<
- uid: >PUT-attendees<
user_no: >12<
+ caldav_data: >BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Apple Inc.//iCal 3.0//EN
+CALSCALE:GREGORIAN
+METHOD:REQUEST
+BEGIN:VTIMEZONE
+TZID:Pacific/Auckland
+BEGIN:STANDARD
+TZOFFSETFROM:+1300
+TZOFFSETTO:+1200
+DTSTART:19900318T030000
+RRULE:FREQ=YEARLY;UNTIL=20070317T140000Z;BYMONTH=3;BYDAY=3SU
+TZNAME:NZST
+END:STANDARD
+BEGIN:DAYLIGHT
+TZOFFSETFROM:+1200
+TZOFFSETTO:+1300
+DTSTART:20070930T020000
+RRULE:FREQ=YEARLY;BYMONTH=9;BYDAY=-1SU
+TZNAME:NZDT
+END:DAYLIGHT
+BEGIN:STANDARD
+TZOFFSETFROM:+1300
+TZOFFSETTO:+1200
+DTSTART:20080406T030000
+RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU
+TZNAME:NZST
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+SEQUENCE:7
+DESCRIPTION:Masses of Lunch will be needed
+UID:PUT-attendees
+TRANSP:OPAQUE
+DTSTART;TZID=Pacific/Auckland:20101123T110000
+DTEND;TZID=Pacific/Auckland:20101123T160000
+DTSTAMP:20101124T221900Z
+SUMMARY:Multiple Beard Meeting
+CREATED:20071124T221521Z
+RRULE:FREQ=MONTHLY;INTERVAL=1;BYDAY=4TU
+ORGANIZER;CN=User 1:MAILTO:user1@example.net
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RS
+ VP=TRUE;CN=User 1;LANGUAGE=en:MAILTO:user1@example.net
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RS
+ VP=TRUE;CN=User 2;LANGUAGE=en:MAILTO:user2@example.net
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RS
+ VP=TRUE;CN=User 3;LANGUAGE=en:MAILTO:user3@example.net
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RS
+ VP=TRUE;CN=User 4;LANGUAGE=en:MAILTO:user4@example.net
+END:VEVENT
+END:VCALENDAR
+<
caldav_type: >VEVENT<
- dav_etag: >29961c088fb4666d00f6894e5dd3cfe8<
- dtend: >2010-11-23 16:00:00<
- dtstamp: >2010-11-24 22:19:00<
- dtstart: >2010-11-23 11:00:00<
- due: >NULL<
- location: >NULL<
+ dav_name: >/user3/.in/PUT-attendees.ics<
+ logged_user: >10<
+ summary: >Multiple Beard Meeting<
+ user_no: >12<
+
+ caldav_data: >BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Apple Inc.//iCal 3.0//EN
+CALSCALE:GREGORIAN
+BEGIN:VTIMEZONE
+TZID:Pacific/Auckland
+BEGIN:STANDARD
+TZOFFSETFROM:+1300
+TZOFFSETTO:+1200
+DTSTART:19900318T030000
+RRULE:FREQ=YEARLY;UNTIL=20070317T140000Z;BYMONTH=3;BYDAY=3SU
+TZNAME:NZST
+END:STANDARD
+BEGIN:DAYLIGHT
+TZOFFSETFROM:+1200
+TZOFFSETTO:+1300
+DTSTART:20070930T020000
+RRULE:FREQ=YEARLY;BYMONTH=9;BYDAY=-1SU
+TZNAME:NZDT
+END:DAYLIGHT
+BEGIN:STANDARD
+TZOFFSETFROM:+1300
+TZOFFSETTO:+1200
+DTSTART:20080406T030000
+RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU
+TZNAME:NZST
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+SEQUENCE:7
+DESCRIPTION:Masses of Lunch will be needed
+UID:PUT-attendees
+TRANSP:OPAQUE
+DTSTART;TZID=Pacific/Auckland:20101123T110000
+DTEND;TZID=Pacific/Auckland:20101123T160000
+DTSTAMP:20101124T221900Z
+SUMMARY:Multiple Beard Meeting
+CREATED:20071124T221521Z
+RRULE:FREQ=MONTHLY;INTERVAL=1;BYDAY=4TU
+ORGANIZER;CN=User 1:MAILTO:user1@example.net
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;
+ RSVP=TRUE;CN=User 1;LANGUAGE=en:MAILTO:user1@example.net
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;
+ RSVP=TRUE;CN=User 2;LANGUAGE=en:MAILTO:user2@example.net
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;
+ RSVP=TRUE;CN=User 3;LANGUAGE=en:MAILTO:user3@example.net
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;
+ RSVP=TRUE;CN=User 4;LANGUAGE=en:MAILTO:user4@example.net
+END:VEVENT
+END:VCALENDAR
+<
+ caldav_type: >VEVENT<
+ dav_name: >/user4/home/PUT-attendees.ics<
logged_user: >10<
summary: >Multiple Beard Meeting<
- uid: >PUT-attendees<
user_no: >13<
+ caldav_data: >BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Apple Inc.//iCal 3.0//EN
+CALSCALE:GREGORIAN
+METHOD:REQUEST
+BEGIN:VTIMEZONE
+TZID:Pacific/Auckland
+BEGIN:STANDARD
+TZOFFSETFROM:+1300
+TZOFFSETTO:+1200
+DTSTART:19900318T030000
+RRULE:FREQ=YEARLY;UNTIL=20070317T140000Z;BYMONTH=3;BYDAY=3SU
+TZNAME:NZST
+END:STANDARD
+BEGIN:DAYLIGHT
+TZOFFSETFROM:+1200
+TZOFFSETTO:+1300
+DTSTART:20070930T020000
+RRULE:FREQ=YEARLY;BYMONTH=9;BYDAY=-1SU
+TZNAME:NZDT
+END:DAYLIGHT
+BEGIN:STANDARD
+TZOFFSETFROM:+1300
+TZOFFSETTO:+1200
+DTSTART:20080406T030000
+RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU
+TZNAME:NZST
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+SEQUENCE:7
+DESCRIPTION:Masses of Lunch will be needed
+UID:PUT-attendees
+TRANSP:OPAQUE
+DTSTART;TZID=Pacific/Auckland:20101123T110000
+DTEND;TZID=Pacific/Auckland:20101123T160000
+DTSTAMP:20101124T221900Z
+SUMMARY:Multiple Beard Meeting
+CREATED:20071124T221521Z
+RRULE:FREQ=MONTHLY;INTERVAL=1;BYDAY=4TU
+ORGANIZER;CN=User 1:MAILTO:user1@example.net
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RS
+ VP=TRUE;CN=User 1;LANGUAGE=en:MAILTO:user1@example.net
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RS
+ VP=TRUE;CN=User 2;LANGUAGE=en:MAILTO:user2@example.net
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RS
+ VP=TRUE;CN=User 3;LANGUAGE=en:MAILTO:user3@example.net
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RS
+ VP=TRUE;CN=User 4;LANGUAGE=en:MAILTO:user4@example.net
+END:VEVENT
+END:VCALENDAR
+<
caldav_type: >VEVENT<
- dav_etag: >e69b6d5b70189b96126c8993bcf1648a<
- dtend: >2010-11-23 16:00:00<
- dtstamp: >2010-11-24 22:19:00<
- dtstart: >2010-11-23 11:00:00<
- due: >NULL<
- location: >NULL<
+ dav_name: >/user4/.in/PUT-attendees.ics<
+ logged_user: >10<
+ summary: >Multiple Beard Meeting<
+ user_no: >13<
+
+ caldav_data: >BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Apple Inc.//iCal 3.0//EN
+CALSCALE:GREGORIAN
+BEGIN:VTIMEZONE
+TZID:Pacific/Auckland
+BEGIN:STANDARD
+TZOFFSETFROM:+1300
+TZOFFSETTO:+1200
+DTSTART:19900318T030000
+RRULE:FREQ=YEARLY;UNTIL=20070317T140000Z;BYMONTH=3;BYDAY=3SU
+TZNAME:NZST
+END:STANDARD
+BEGIN:DAYLIGHT
+TZOFFSETFROM:+1200
+TZOFFSETTO:+1300
+DTSTART:20070930T020000
+RRULE:FREQ=YEARLY;BYMONTH=9;BYDAY=-1SU
+TZNAME:NZDT
+END:DAYLIGHT
+BEGIN:STANDARD
+TZOFFSETFROM:+1300
+TZOFFSETTO:+1200
+DTSTART:20080406T030000
+RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU
+TZNAME:NZST
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+SEQUENCE:7
+DESCRIPTION:Masses of Lunch will be needed
+UID:PUT-attendees
+TRANSP:OPAQUE
+DTSTART;TZID=Pacific/Auckland:20101123T110000
+DTEND;TZID=Pacific/Auckland:20101123T160000
+DTSTAMP:20101124T221900Z
+SUMMARY:Multiple Beard Meeting
+CREATED:20071124T221521Z
+RRULE:FREQ=MONTHLY;INTERVAL=1;BYDAY=4TU
+ORGANIZER;CN=User 1:MAILTO:user1@example.net
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;
+ RSVP=TRUE;CN=User 1;LANGUAGE=en:MAILTO:user1@example.net
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;
+ RSVP=TRUE;CN=User 2;LANGUAGE=en:MAILTO:user2@example.net
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;
+ RSVP=TRUE;CN=User 3;LANGUAGE=en:MAILTO:user3@example.net
+ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;
+ RSVP=TRUE;CN=User 4;LANGUAGE=en:MAILTO:user4@example.net
+END:VEVENT
+END:VCALENDAR
+<
+ caldav_type: >VEVENT<
+ dav_name: >/resource2/home/PUT-attendees.ics<
logged_user: >10<
summary: >Multiple Beard Meeting<
- uid: >PUT-attendees<
user_no: >101<
diff --git a/testing/tests/scheduling/3010-PUT-with-attendees.test b/testing/tests/scheduling/3010-PUT-with-attendees.test
index 8ebab2b0..740db4e8 100644
--- a/testing/tests/scheduling/3010-PUT-with-attendees.test
+++ b/testing/tests/scheduling/3010-PUT-with-attendees.test
@@ -63,11 +63,9 @@ ENDDATA
QUERY
-SELECT caldav_data.user_no, caldav_data.dav_etag, caldav_type, logged_user,
- uid, dtstamp,
- dtstart at time zone tz_locn as dtstart,
- dtend at time zone tz_locn as dtend,
- due, summary, location
+SELECT caldav_data.user_no, caldav_data.dav_name,
+ caldav_type, logged_user, caldav_data.caldav_data,
+ summary
FROM caldav_data JOIN calendar_item USING(dav_name) LEFT JOIN time_zone USING (tz_id)
WHERE calendar_item.uid = 'PUT-attendees';
ENDQUERY