Changeset 5907 for trunk/prototype
- Timestamp:
- 04/10/12 17:27:27 (12 years ago)
- Location:
- trunk/prototype
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/prototype/config/CalDAV.srv
r5604 r5907 1 1 ;Url utilizada para acessar o serviço caldav 2 2 url = "" 3 ;Conta do caldav onde fica armazenada as agendas de contas compartilhadas 4 sharedAccountsLocation = "shareds" -
trunk/prototype/config/calendarToPermission.ini
r5812 r5907 11 11 deepnessFindCalendarShared = modules/calendar/interceptors/DBMapping.php 12 12 13 [before.create] 14 createCollectionACL = modules/calendar/interceptors/DAViCalAdapter.php 15 16 [before.update] 17 updateCollectionACL = modules/calendar/interceptors/DAViCalAdapter.php 18 19 13 20 [PostgreSQL.mapping] 14 21 id = id -
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 -
trunk/prototype/modules/calendar/interceptors/DBMapping.php
r5863 r5907 394 394 static function putEvent(&$uri , &$result , &$criteria , $original) 395 395 { 396 if(Config::module('useCaldav' )) //Ignorar Put dos eventos ja vindos do caldav396 if(Config::module('useCaldav' , 'expressoCalendar')) //Ignorar Put dos eventos ja vindos do caldav 397 397 { 398 398 require_once ROOTPATH.'/modules/calendar/interceptors/DAViCalAdapter.php'; … … 419 419 if( is_array($calendars) ) 420 420 foreach ($calendars as $calendar) 421 DAViCalAdapter::putIcal($ical , array('uid' => $event['uid'] , ' collection' => $calendar['calendar_location'] ));421 DAViCalAdapter::putIcal($ical , array('uid' => $event['uid'] , 'location' => $calendar['calendar_location'] )); 422 422 } 423 423 } … … 426 426 public function verifyCalendarLocation( &$uri , &$params , &$criteria , $original ){ 427 427 if(!isset($params['location'])) 428 $params['location'] = $params['name'];428 $params['location'] = Config::me('uid').'/'.$params['name']; 429 429 } 430 430 … … 744 744 public function deleteSchedulable( &$uri , &$params , &$criteria , $original ){ 745 745 746 if(Config::module('useCaldav' ))746 if(Config::module('useCaldav' , 'expressoCalendar')) 747 747 require_once ROOTPATH.'/modules/calendar/interceptors/DAViCalAdapter.php'; 748 748 749 749 $calendarsToSchedulable = self::schedulable2calendarToObject($uri['id']); 750 750 if( !self::ownerSchedulable($uri['id']) ) 751 { 751 { 752 752 foreach ($calendarsToSchedulable as $i => $v) 753 753 { 754 754 Controller::delete(array('concept' => 'calendarToSchedulable' , 'id' => $v['calendar_to_calendar_object'])); 755 755 756 if(Config::module('useCaldav' ))757 DAViCalAdapter::deleteEvent($uri['id'], array(' calendar' => $v['calendar_name']));756 if(Config::module('useCaldav' , 'expressoCalendar')) 757 DAViCalAdapter::deleteEvent($uri['id'], array('location' => $v['calendar_location'])); 758 758 } 759 759 … … 768 768 return false; /* Mata o restante da execução */ 769 769 } 770 771 if(Config::module('useCaldav' ))770 771 if(Config::module('useCaldav' , 'expressoCalendar')) 772 772 foreach ($calendarsToSchedulable as $i => $v) 773 DAViCalAdapter::deleteEvent($uri['id'], array(' calendar' => $v['calendar_name']));773 DAViCalAdapter::deleteEvent($uri['id'], array('location' => $v['calendar_location'])); 774 774 775 775 } … … 831 831 { 832 832 833 if( Config::module('useCaldav' ) )833 if( Config::module('useCaldav' , 'expressoCalendar') ) 834 834 { 835 835 require_once ROOTPATH.'/modules/calendar/interceptors/DAViCalAdapter.php'; … … 838 838 } 839 839 840 if( Config::module('useCaldav' ) && is_array($calendario) && count($calendario) > 0)840 if( Config::module('useCaldav' , 'expressoCalendar') && is_array($calendario) && count($calendario) > 0) 841 841 { 842 842 foreach ($calendario as $i => $v) … … 930 930 931 931 public function davcalCreateCollection( &$uri , &$params , &$criteria , $original ){ 932 if( Config::module('useCaldav' ) )932 if( Config::module('useCaldav' , 'expressoCalendar') ) 933 933 { 934 934 require_once ROOTPATH.'/modules/calendar/interceptors/DAViCalAdapter.php'; 935 935 DAViCalAdapter::mkcalendar($params['location'] , $params['name'], isset($params['description']) ? $params['description'] : '' ); 936 936 } 937 937 } 938 938 939 939 public function davcalDeleteCollection( &$uri , &$params , &$criteria , $original ){ 940 if( Config::module('useCaldav' ) && Config::module('onRemoveCascadeCalDav'))940 if( Config::module('useCaldav' , 'expressoCalendar') && Config::module('onRemoveCascadeCalDav')) 941 941 { 942 942 require_once ROOTPATH.'/modules/calendar/interceptors/DAViCalAdapter.php'; … … 947 947 948 948 public function davcalUpdateCollection( &$uri , &$params , &$criteria , $original ){ 949 if( Config::module('useCaldav' ) )949 if( Config::module('useCaldav' , 'expressoCalendar') ) 950 950 { 951 951 require_once ROOTPATH.'/modules/calendar/interceptors/DAViCalAdapter.php'; … … 1020 1020 return Controller::service('PostgreSQL')->execResultSql('SELECT calendar_to_calendar_object.id as calendar_to_calendar_Object , calendar.name as calendar_name ,calendar.location as calendar_location, calendar.id as calendar_id FROM calendar_to_calendar_object , calendar , calendar_signature' 1021 1021 .' WHERE calendar_signature.user_uidnumber = '.$_SESSION['wallet']['user']['uidNumber'] 1022 .' AND calendar_signature.is_owner = 1'1022 // .' AND calendar_signature.is_owner = 1' 1023 1023 .' AND calendar_signature.calendar_id = calendar.id' 1024 1024 .' AND calendar_to_calendar_object.calendar_id = calendar.id'
Note: See TracChangeset
for help on using the changeset viewer.