diff --git a/inc/CalDAVPrincipal.php b/inc/CalDAVPrincipal.php
index 6b1f4281..f5c9a821 100644
--- a/inc/CalDAVPrincipal.php
+++ b/inc/CalDAVPrincipal.php
@@ -504,8 +504,12 @@ class CalDAVPrincipal
* Return the privileges bits for the current session user to this resource
*/
function Privileges() {
+ global $session;
if ( !isset($this->privileges) ) $this->privileges = 0;
if ( is_string($this->privileges) ) $this->privileges = bindec( $this->privileges );
+ if ( $this->_is_group && in_array(ConstructURL('/'.$session->username.'/'), $this->GroupMemberSet()) ) {
+ $this->privileges |= privilege_to_bits( array('DAV::read', 'DAV::read-current-user-privilege-set') );
+ }
return $this->privileges;
}
diff --git a/testing/tests/regression-suite/0224-Moz-OPTIONS-principal.result b/testing/tests/regression-suite/0224-Moz-OPTIONS-principal.result
new file mode 100644
index 00000000..e69de29b
diff --git a/testing/tests/regression-suite/0224-Moz-OPTIONS-principal.test b/testing/tests/regression-suite/0224-Moz-OPTIONS-principal.test
new file mode 100644
index 00000000..03be9f38
--- /dev/null
+++ b/testing/tests/regression-suite/0224-Moz-OPTIONS-principal.test
@@ -0,0 +1,9 @@
+#
+# Do an OPTIONS request against our own principal-URL
+#
+TYPE=OPTIONS
+URL=http://mycaldav/caldav.php/user1/
+
+HEADER=User-Agent: DAViCalTester/1.0
+
+HEAD
diff --git a/testing/tests/regression-suite/0225-Moz-OPTIONS-group-principal.result b/testing/tests/regression-suite/0225-Moz-OPTIONS-group-principal.result
new file mode 100644
index 00000000..e69de29b
diff --git a/testing/tests/regression-suite/0225-Moz-OPTIONS-group-principal.test b/testing/tests/regression-suite/0225-Moz-OPTIONS-group-principal.test
new file mode 100644
index 00000000..73e4a75e
--- /dev/null
+++ b/testing/tests/regression-suite/0225-Moz-OPTIONS-group-principal.test
@@ -0,0 +1,9 @@
+#
+# Do an OPTIONS request against the principal-URL of a group we are a member of
+#
+TYPE=OPTIONS
+URL=http://mycaldav/caldav.php/teamclient1/
+
+HEADER=User-Agent: DAViCalTester/1.0
+
+HEAD
diff --git a/testing/tests/regression-suite/0527-iCal-PROPFIND.result b/testing/tests/regression-suite/0527-iCal-PROPFIND.result
index 897af6b6..605e9ec4 100644
--- a/testing/tests/regression-suite/0527-iCal-PROPFIND.result
+++ b/testing/tests/regression-suite/0527-iCal-PROPFIND.result
@@ -1,18 +1,47 @@
-HTTP/1.1 403 Forbidden
+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
-Content-Length: 216
+ETag: "1f0e016ecbd8566bc60b88a167178059"
+Content-Length: 1071
Content-Type: text/xml; charset="utf-8"
-
-
-
- /caldav.php/resmgr1/
-
-
-
-
-
-
+
+
+ /caldav.php/resmgr1/
+
+
+
+ /caldav.php/resource1/calendar-proxy-write/
+ /caldav.php/resource2/calendar-proxy-write/
+
+
+ HTTP/1.1 200 OK
+
+
+
+ /caldav.php/resmgr1/calendar-proxy-read/
+
+
+
+ /caldav.php/resource1/calendar-proxy-write/
+ /caldav.php/resource2/calendar-proxy-write/
+
+
+ HTTP/1.1 200 OK
+
+
+
+ /caldav.php/resmgr1/calendar-proxy-write/
+
+
+
+ /caldav.php/resource1/calendar-proxy-write/
+ /caldav.php/resource2/calendar-proxy-write/
+
+
+ HTTP/1.1 200 OK
+
+
+
diff --git a/testing/tests/regression-suite/0528-iCal-PROPFIND.result b/testing/tests/regression-suite/0528-iCal-PROPFIND.result
index 897af6b6..605e9ec4 100644
--- a/testing/tests/regression-suite/0528-iCal-PROPFIND.result
+++ b/testing/tests/regression-suite/0528-iCal-PROPFIND.result
@@ -1,18 +1,47 @@
-HTTP/1.1 403 Forbidden
+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
-Content-Length: 216
+ETag: "1f0e016ecbd8566bc60b88a167178059"
+Content-Length: 1071
Content-Type: text/xml; charset="utf-8"
-
-
-
- /caldav.php/resmgr1/
-
-
-
-
-
-
+
+
+ /caldav.php/resmgr1/
+
+
+
+ /caldav.php/resource1/calendar-proxy-write/
+ /caldav.php/resource2/calendar-proxy-write/
+
+
+ HTTP/1.1 200 OK
+
+
+
+ /caldav.php/resmgr1/calendar-proxy-read/
+
+
+
+ /caldav.php/resource1/calendar-proxy-write/
+ /caldav.php/resource2/calendar-proxy-write/
+
+
+ HTTP/1.1 200 OK
+
+
+
+ /caldav.php/resmgr1/calendar-proxy-write/
+
+
+
+ /caldav.php/resource1/calendar-proxy-write/
+ /caldav.php/resource2/calendar-proxy-write/
+
+
+ HTTP/1.1 200 OK
+
+
+