- Timestamp:
- 04/10/12 17:27:27 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/prototype/modules/calendar/interceptors/DAViCalAdapter.php
r5481 r5907 1 1 <?php 2 require_once ROOTPATH.'/modules/calendar/constants.php'; 2 3 3 4 class DAViCalAdapter { … … 29 30 if($concept['concept'] === 'calendarToSchedulable') 30 31 { 31 if(Config::module('useCaldav' ))32 if(Config::module('useCaldav' , 'expressoCalendar')) 32 33 { 33 34 ob_start(); … … 38 39 $calendar = Controller::read( array( 'concept' => 'calendar' , 'id' => $calendarToschedulable['calendar'] ),array('timezone','name','location')); 39 40 $ical = Controller::format( array( 'service' => 'iCal' ) , array($schedulable) , array('defaultTZI' => $calendar['timezone'])); 40 DAViCalAdapter::putIcal($ical , array('uid' => $schedulable['uid'] , ' collection' => $calendar['location'] ));41 DAViCalAdapter::putIcal($ical , array('uid' => $schedulable['uid'] , 'location' => $calendar['location'] )); 41 42 } 42 43 ob_end_clean(); … … 47 48 } 48 49 50 public function createCollectionACL(&$uri ,&$params , &$criteria , $original) 51 { 52 if( Config::module('useCaldav' , 'expressoCalendar') ) 53 { 54 $calendar = Controller::read( array( 'concept' => 'calendar' , 'id' => $params['calendar'] )); 55 56 if($params['user'] !== '0') 57 { 58 $user = Controller::read( array( 'concept' => 'user' , 'id' => $params['user'] )); 59 $xmUser = '<D:href>'.Config::service( 'CalDAV' , 'url' ).'/'.$user['uid'].'/</D:href>'; 60 } 61 else 62 $xmUser = '<D:authenticated/>'; 63 64 $xml ="<?xml version=\"1.0\" encoding=\"utf-8\" ?> 65 <D:acl xmlns:D=\"DAV:\"> 66 <D:ace> 67 <D:principal> 68 ".$xmUser." 69 </D:principal> 70 <D:grant> 71 ".self::acltToXML($params['acl'])." 72 </D:grant> 73 </D:ace> 74 </D:acl>"; 75 76 ob_start(); 77 require_once ROOTPATH.'/plugins/davicalCliente/caldav-client-v2.php'; 78 $cal = new CalDAVClient( Config::service( 'CalDAV' , 'url' ).'/'.$calendar['location'].'/', Config::me( 'uid' ), Config::me( 'password' )); 79 $cal->DoXMLRequest('ACL', $xml); 80 ob_end_clean(); 81 } 82 } 83 84 public function updateCollectionACL(&$uri ,&$params , &$criteria , $original) 85 { 86 if( Config::module('useCaldav' , 'expressoCalendar') ) 87 { 88 $permision = Controller::read( array( 'concept' => 'calendarToPermission' , 'id' => $params['id'] )); 89 $calendar = Controller::read( array( 'concept' => 'calendar' , 'id' => $permision['calendar'] )); 90 91 if($permision['user'] !== '0') 92 { 93 $user = Controller::read( array( 'concept' => 'user' , 'id' => $permision['user'] )); 94 $xmUser = '<D:href>'.Config::service( 'CalDAV' , 'url' ).'/'.$user['uid'].'/</D:href>'; 95 } 96 else 97 $xmUser = '<D:authenticated/>'; 98 99 $xml ="<?xml version=\"1.0\" encoding=\"utf-8\" ?> 100 <D:acl xmlns:D=\"DAV:\"> 101 <D:ace> 102 <D:principal> 103 ".$xmUser." 104 </D:principal> 105 <D:grant> 106 ".self::acltToXML($params['acl'])." 107 </D:grant> 108 </D:ace> 109 </D:acl>"; 110 111 ob_start(); 112 require_once ROOTPATH.'/plugins/davicalCliente/caldav-client-v2.php'; 113 $cal = new CalDAVClient( Config::service( 'CalDAV' , 'url' ).'/'.$calendar['location'].'/', Config::me( 'uid' ), Config::me( 'password' )); 114 $cal->DoXMLRequest('ACL', $xml); 115 ob_end_clean(); 116 117 } 118 } 119 120 private static function acltToXML($acls) 121 { 122 $array = array(); 123 $acls = str_split($acls); 124 125 foreach ($acls as &$acl) 126 switch ($acl) 127 { 128 case CALENDAR_ACL_WRITE: 129 $array[] = "<D:privilege><D:bind/></D:privilege>"; 130 $array[] = "<D:privilege><D:write-properties/></D:privilege>"; 131 $array[] = "<D:privilege><D:write-content/></D:privilege>"; 132 $array[] = "<D:privilege><D:unlock/></D:privilege>"; 133 $array[] = "<D:privilege><D:schedule-deliver/></D:privilege>"; 134 $array[] = "<D:privilege><D:schedule-send/></D:privilege>"; 135 break; 136 case CALENDAR_ACL_READ: 137 $array[] = "<D:privilege><D:read /></D:privilege>"; 138 $array[] = "<D:privilege><D:schedule-query-freebusy /></D:privilege>"; 139 $array[] = "<D:privilege><D:read-free-busy /></D:privilege>"; 140 break; 141 case CALENDAR_ACL_REMOVE: 142 $array[] = "<D:privilege><D:unbind/></D:privilege>"; 143 break; 144 case CALENDAR_ACL_SHARED: 145 $array[] = "<D:privilege><D:write-acl/></D:privilege>"; 146 $array[] = "<D:privilege><D:read-acl/></D:privilege>"; 147 $array[] = "<D:privilege><D:read-current-user-privilege-set/></D:privilege>"; 148 break; 149 case CALENDAR_ACL_BUSY: 150 $array[] = "<D:privilege><D:schedule-query-freebusy/></D:privilege>"; 151 $array[] = "<D:privilege><D:read-free-busy/></D:privilege>"; 152 break; 153 } 154 return implode("\n", $array); 155 } 49 156 50 157 static function import($data , $params = false) … … 157 264 158 265 if(!is_array(self::$deleted) || !in_array($event['uid'], self::$deleted)) 159 self::deleteIcal($event['uid'] , array('uid' => $event['uid'] , ' collection' => $params['calendar'] ));266 self::deleteIcal($event['uid'] , array('uid' => $event['uid'] , 'location' => $params['location'] )); 160 267 161 268 } … … 165 272 ob_start(); 166 273 require_once ROOTPATH.'/plugins/davicalCliente/caldav-client-v2.php'; 167 $cal = new CalDAVClient( Config::service( 'CalDAV' , 'url' ).'/'. Config::me( 'uid' ).'/'.$params['collection'].'/', Config::me( 'uid' ), $_SESSION['wallet']['user']['password']);168 $cal->DoPUTRequest( Config::service( 'CalDAV' , 'url' ).'/'. Config::me( 'uid' ).'/'.$params['collection'].'/'.$params['uid'].'.ics', $data );274 $cal = new CalDAVClient( Config::service( 'CalDAV' , 'url' ).'/'.$params['location'].'/', Config::me( 'uid' ), Config::me( 'password' ) ); 275 $cal->DoPUTRequest( Config::service( 'CalDAV' , 'url' ).'/'.$params['location'].'/'.$params['uid'].'.ics', $data ); 169 276 ob_end_clean(); 170 277 } … … 174 281 ob_start(); 175 282 require_once ROOTPATH.'/plugins/davicalCliente/caldav-client-v2.php'; 176 $cal = new CalDAVClient( Config::service( 'CalDAV' , 'url' ).'/'. Config::me( 'uid' ).'/'.$params['collection'].'/', Config::me( 'uid' ), $_SESSION['wallet']['user']['password']);177 $cal->DoDELETERequest( Config::service( 'CalDAV' , 'url' ).'/'. Config::me( 'uid' ).'/'.$params['collection'].'/'.$data.'.ics' );283 $cal = new CalDAVClient( Config::service( 'CalDAV' , 'url' ).'/'.$params['location'].'/', Config::me( 'uid' ), Config::me( 'password' )); 284 $cal->DoDELETERequest( Config::service( 'CalDAV' , 'url' ).'/'.$params['location'].'/'.$data.'.ics' ); 178 285 ob_end_clean(); 179 286 } … … 183 290 ob_start(); 184 291 require_once ROOTPATH.'/plugins/davicalCliente/caldav-client-v2.php'; 185 $cal = new CalDAVClient( Config::service( 'CalDAV' , 'url' ).'/' .Config::me( 'uid' ).'/', Config::me( 'uid' ), $_SESSION['wallet']['user']['password']);292 $cal = new CalDAVClient( Config::service( 'CalDAV' , 'url' ).'/', Config::me( 'uid' ), Config::me( 'password' )); 186 293 $cal->DoDELETERequest(Config::service( 'CalDAV' , 'url' ).'/'.Config::me( 'uid' ).'/'.$data.'/'); 187 294 ob_end_clean(); … … 192 299 ob_start(); 193 300 require_once ROOTPATH.'/plugins/davicalCliente/caldav-client-v2.php'; 194 $cal = new CalDAVClient( Config::service( 'CalDAV' , 'url' ).'/'.Config::me( 'uid' ).'/', Config::me( 'uid' ), $_SESSION['wallet']['user']['password']);301 $cal = new CalDAVClient( Config::service( 'CalDAV' , 'url' ).'/'.Config::me( 'uid' ).'/', Config::me( 'uid' ), Config::me( 'password' )); 195 302 $cal->DoMOVERequest( $origem.'/' , $destination.'/' ); 196 303 ob_end_clean(); … … 201 308 ob_start(); 202 309 require_once ROOTPATH.'/plugins/davicalCliente/caldav-client-v2.php'; 203 $cal = new CalDAVClient( Config::service( 'CalDAV' , 'url' ).'/' .Config::me( 'uid' ).'/', Config::me( 'uid' ), $_SESSION['wallet']['user']['password']);310 $cal = new CalDAVClient( Config::service( 'CalDAV' , 'url' ).'/', Config::me( 'uid' ), Config::me( 'password' )); 204 311 ob_end_clean(); 205 312 return $cal->FindCalendars(); … … 207 314 208 315 static function mkcalendar($location , $name, $description ) 209 { 316 { 210 317 ob_start(); 211 318 require_once ROOTPATH.'/plugins/davicalCliente/caldav-client-v2.php'; 212 $cal = new CalDAVClient( Config::service( 'CalDAV' , 'url' ).'/' .Config::me( 'uid' ).'/', Config::me( 'uid' ), $_SESSION['wallet']['user']['password']);319 $cal = new CalDAVClient( Config::service( 'CalDAV' , 'url' ).'/', Config::me( 'uid' ), Config::me( 'password' )); 213 320 214 321 $xml ="<?xml version=\"1.0\" encoding=\"utf-8\" ?> … … 227 334 228 335 229 $cal->DoXMLRequest('MKCALENDAR', $xml, Config::service( 'CalDAV' , 'url' ).'/'. Config::me( 'uid' ).'/'.$location.'/');336 $cal->DoXMLRequest('MKCALENDAR', $xml, Config::service( 'CalDAV' , 'url' ).'/'.$location.'/'); 230 337 ob_end_clean(); 231 338 } … … 235 342 ob_start(); 236 343 require_once ROOTPATH.'/plugins/davicalCliente/caldav-client-v2.php'; 237 $cal = new CalDAVClient( Config::service( 'CalDAV' , 'url' ).'/' .Config::me( 'uid' ).'/', Config::me( 'uid' ), Config::me( 'password' ));344 $cal = new CalDAVClient( Config::service( 'CalDAV' , 'url' ).'/', Config::me( 'uid' ), Config::me( 'password' )); 238 345 239 346 $events = $cal->GetCollectionETags($url) ; … … 251 358 ob_end_clean(); 252 359 } 253 360 254 361 } 255 362
Note: See TracChangeset
for help on using the changeset viewer.