/** * Returns a list of ACE's for this node. * * Each ACE has the following properties: * * 'privilege', a string such as {DAV:}read or {DAV:}write. These are * currently the only supported privileges * * 'principal', a url to the principal who owns the node * * 'protected' (optional), indicating that this ACE is not allowed to * be updated. * * @return array */ public function getACL() { // The top-level ACL only contains access information for the true // owner of the calendar, so we need to add the information for the // sharee. $acl = parent::getACL(); $acl[] = array('privilege' => '{DAV:}read', 'principal' => $this->calendarInfo['principaluri'], 'protected' => true); if (!$this->calendarInfo['{http://sabredav.org/ns}read-only']) { $acl[] = array('privilege' => '{DAV:}write', 'principal' => $this->calendarInfo['principaluri'], 'protected' => true); } return $acl; }
function testGetACL() { $expected = array(array('privilege' => '{DAV:}read', 'principal' => 'principals/user1', 'protected' => true), array('privilege' => '{DAV:}write', 'principal' => 'principals/user1', 'protected' => true), array('privilege' => '{DAV:}read', 'principal' => 'principals/user1/calendar-proxy-write', 'protected' => true), array('privilege' => '{DAV:}write', 'principal' => 'principals/user1/calendar-proxy-write', 'protected' => true), array('privilege' => '{DAV:}read', 'principal' => 'principals/user1/calendar-proxy-read', 'protected' => true), array('privilege' => '{' . Sabre_CalDAV_Plugin::NS_CALDAV . '}read-free-busy', 'principal' => '{DAV:}authenticated', 'protected' => true)); $this->assertEquals($expected, $this->calendar->getACL()); }