From fafa2662b22ebd45157a33b15fc7d5e7580bef84 Mon Sep 17 00:00:00 2001 From: Andrew McMillan Date: Tue, 4 Jan 2011 16:59:03 +1300 Subject: [PATCH] Move supported privileges into a private static function, rather than assign the array in every instance of CalDAVRequest. Signed-off-by: Andrew McMillan --- inc/CalDAVRequest.php | 63 ++++++++++++++++++++++--------------------- 1 file changed, 33 insertions(+), 30 deletions(-) diff --git a/inc/CalDAVRequest.php b/inc/CalDAVRequest.php index 22aae37b..f4737c76 100644 --- a/inc/CalDAVRequest.php +++ b/inc/CalDAVRequest.php @@ -106,35 +106,6 @@ class CalDAVRequest function __construct( $options = array() ) { global $session, $c, $debugging; - $this->supported_privileges = array( - 'all' => array( - 'read' => translate('Read the content of a resource or collection'), - 'write' => array( - 'bind' => translate('Create a resource or collection'), - 'unbind' => translate('Delete a resource or collection'), - 'write-content' => translate('Write content'), - 'write-properties' => translate('Write properties') - ), - 'urn:ietf:params:xml:ns:caldav:read-free-busy' => translate('Read the free/busy information for a calendar collection'), - 'read-acl' => translate('Read ACLs for a resource or collection'), - 'read-current-user-privilege-set' => translate('Read the details of the current user\'s access control to this resource.'), - 'write-acl' => translate('Write ACLs for a resource or collection'), - 'unlock' => translate('Remove a lock'), - - 'urn:ietf:params:xml:ns:caldav:schedule-deliver' => array( - 'urn:ietf:params:xml:ns:caldav:schedule-deliver-invite'=> translate('Deliver scheduling invitations from an organiser to this scheduling inbox'), - 'urn:ietf:params:xml:ns:caldav:schedule-deliver-reply' => translate('Deliver scheduling replies from an attendee to this scheduling inbox'), - 'urn:ietf:params:xml:ns:caldav:schedule-query-freebusy' => translate('Allow free/busy enquiries targeted at the owner of this scheduling inbox') - ), - - 'urn:ietf:params:xml:ns:caldav:schedule-send' => array( - 'urn:ietf:params:xml:ns:caldav:schedule-send-invite' => translate('Send scheduling invitations as an organiser from the owner of this scheduling outbox.'), - 'urn:ietf:params:xml:ns:caldav:schedule-send-reply' => translate('Send scheduling replies as an attendee from the owner of this scheduling outbox.'), - 'urn:ietf:params:xml:ns:caldav:schedule-send-freebusy' => translate('Send free/busy enquiries') - ) - ) - ); - $this->options = $options; if ( !isset($this->options['allow_by_email']) ) $this->options['allow_by_email'] = false; @@ -679,6 +650,37 @@ EOSQL; } + private static function supportedPrivileges() { + return array( + 'all' => array( + 'read' => translate('Read the content of a resource or collection'), + 'write' => array( + 'bind' => translate('Create a resource or collection'), + 'unbind' => translate('Delete a resource or collection'), + 'write-content' => translate('Write content'), + 'write-properties' => translate('Write properties') + ), + 'urn:ietf:params:xml:ns:caldav:read-free-busy' => translate('Read the free/busy information for a calendar collection'), + 'read-acl' => translate('Read ACLs for a resource or collection'), + 'read-current-user-privilege-set' => translate('Read the details of the current user\'s access control to this resource.'), + 'write-acl' => translate('Write ACLs for a resource or collection'), + 'unlock' => translate('Remove a lock'), + + 'urn:ietf:params:xml:ns:caldav:schedule-deliver' => array( + 'urn:ietf:params:xml:ns:caldav:schedule-deliver-invite'=> translate('Deliver scheduling invitations from an organiser to this scheduling inbox'), + 'urn:ietf:params:xml:ns:caldav:schedule-deliver-reply' => translate('Deliver scheduling replies from an attendee to this scheduling inbox'), + 'urn:ietf:params:xml:ns:caldav:schedule-query-freebusy' => translate('Allow free/busy enquiries targeted at the owner of this scheduling inbox') + ), + + 'urn:ietf:params:xml:ns:caldav:schedule-send' => array( + 'urn:ietf:params:xml:ns:caldav:schedule-send-invite' => translate('Send scheduling invitations as an organiser from the owner of this scheduling outbox.'), + 'urn:ietf:params:xml:ns:caldav:schedule-send-reply' => translate('Send scheduling replies as an attendee from the owner of this scheduling outbox.'), + 'urn:ietf:params:xml:ns:caldav:schedule-send-freebusy' => translate('Send free/busy enquiries') + ) + ) + ); + } + /** * Returns the dav_name of the resource in our internal namespace */ @@ -846,6 +848,7 @@ EOSQL; dbg_error_log( 'LOG NOTICE', 'Unusual content-type of "%s" and first word of content is "%s"', (isset($this->content_type)?$this->content_type:'(null)'), $first_word ); } + $this->content_type = 'text/plain'; } @@ -921,7 +924,7 @@ EOSQL; */ function BuildSupportedPrivileges( &$reply, $privs = null ) { $privileges = array(); - if ( $privs === null ) $privs = $this->supported_privileges; + if ( $privs === null ) $privs = self::supportedPrivileges(); foreach( $privs AS $k => $v ) { dbg_error_log( 'caldav', 'Adding privilege "%s" which is "%s".', $k, $v ); $privilege = new XMLElement('privilege');