Changeset 6962 for trunk/prototype/modules/calendar
- Timestamp:
- 08/08/12 15:53:29 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/prototype/modules/calendar/interceptors/DAViCalAdapter.php
r6528 r6962 52 52 { 53 53 if( Config::module('useCaldav' , 'expressoCalendar') ) 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 </D:acl>"; 76 77 78 79 80 54 { 55 $calendar = Controller::read( array( 'concept' => 'calendar' , 'id' => $params['calendar'] )); 56 57 if($params['user'] !== '0') 58 { 59 $user = Controller::read( array( 'concept' => 'user' , 'id' => $params['user'] )); 60 $xmUser = '<D:href>'.Config::service( 'CalDAV' , 'url' ).'/'.$user['uid'].'/</D:href>'; 61 } 62 else 63 $xmUser = '<D:authenticated/>'; 64 65 $xml ="<?xml version=\"1.0\" encoding=\"utf-8\" ?> 66 <D:acl xmlns:D=\"DAV:\"> 67 <D:ace> 68 <D:principal> 69 ".$xmUser." 70 </D:principal> 71 <D:grant> 72 ".self::acltToXML($params['acl'])." 73 </D:grant> 74 </D:ace> 75 </D:acl>"; 76 77 ob_start(); 78 require_once ROOTPATH.'/plugins/davicalCliente/caldav-client-v2.php'; 79 $cal = new CalDAVClient( Config::service( 'CalDAV' , 'url' ).'/'.$calendar['location'].'/', Config::me( 'uid' ), Config::me( 'password' )); 80 $cal->DoXMLRequest('ACL', $xml); 81 81 self::setReadCurrentUserPrivilege(Config::service( 'CalDAV' , 'url' ).'/'.substr($calendar['location'] , 0 , (strpos ( $calendar['location'] , '/' ) + 1 ) )); 82 83 82 ob_end_clean(); 83 } 84 84 } 85 85 … … 87 87 { 88 88 if( Config::module('useCaldav' , 'expressoCalendar') ) 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 89 { 90 $permision = Controller::read( array( 'concept' => 'calendarToPermission' , 'id' => $params['id'] )); 91 $calendar = Controller::read( array( 'concept' => 'calendar' , 'id' => $permision['calendar'] )); 92 93 if($permision['user'] !== '0') 94 { 95 $user = Controller::read( array( 'concept' => 'user' , 'id' => $permision['user'] )); 96 $xmUser = '<D:href>'.Config::service( 'CalDAV' , 'url' ).'/'.$user['uid'].'/</D:href>'; 97 } 98 else 99 $xmUser = '<D:authenticated/>'; 100 101 $xml ="<?xml version=\"1.0\" encoding=\"utf-8\" ?> 102 <D:acl xmlns:D=\"DAV:\"> 103 <D:ace> 104 <D:principal> 105 ".$xmUser." 106 </D:principal> 107 <D:grant> 108 ".self::acltToXML($params['acl'])." 109 </D:grant> 110 </D:ace> 111 </D:acl>"; 112 113 ob_start(); 114 require_once ROOTPATH.'/plugins/davicalCliente/caldav-client-v2.php'; 115 $cal = new CalDAVClient( Config::service( 'CalDAV' , 'url' ).'/'.$calendar['location'].'/', Config::me( 'uid' ), Config::me( 'password' )); 116 116 $cal->DoXMLRequest('ACL', $xml); 117 117 self::setReadCurrentUserPrivilege(Config::service( 'CalDAV' , 'url' ).'/'.substr($calendar['location'] , 0 ,(strpos ( $calendar['location'] , '/' ) + 1 ) )); 118 119 120 118 ob_end_clean(); 119 120 } 121 121 } 122 122 … … 128 128 129 129 $xml ="<?xml version=\"1.0\" encoding=\"utf-8\" ?> 130 131 132 133 134 135 136 137 138 139 130 <D:acl xmlns:D=\"DAV:\"> 131 <D:ace> 132 <D:principal> 133 <D:authenticated /> 134 </D:principal> 135 <D:grant> 136 <D:privilege><D:read-current-user-privilege-set/></D:privilege> 137 </D:grant> 138 </D:ace> 139 </D:acl>"; 140 140 ob_start(); 141 141 require_once ROOTPATH.'/plugins/davicalCliente/caldav-client-v2.php'; … … 147 147 private static function acltToXML($acls) 148 148 { 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 }181 149 $array = array(); 150 $acls = str_split($acls); 151 152 foreach ($acls as &$acl) 153 switch ($acl) 154 { 155 case CALENDAR_ACL_WRITE: 156 $array[] = "<D:privilege><D:bind/></D:privilege>"; 157 $array[] = "<D:privilege><D:write-properties/></D:privilege>"; 158 $array[] = "<D:privilege><D:write-content/></D:privilege>"; 159 $array[] = "<D:privilege><D:unlock/></D:privilege>"; 160 $array[] = "<D:privilege><D:schedule-deliver/></D:privilege>"; 161 $array[] = "<D:privilege><D:schedule-send/></D:privilege>"; 162 break; 163 case CALENDAR_ACL_READ: 164 $array[] = "<D:privilege><D:read /></D:privilege>"; 165 $array[] = "<D:privilege><D:schedule-query-freebusy /></D:privilege>"; 166 $array[] = "<D:privilege><D:read-free-busy /></D:privilege>"; 167 break; 168 case CALENDAR_ACL_REMOVE: 169 $array[] = "<D:privilege><D:unbind/></D:privilege>"; 170 break; 171 case CALENDAR_ACL_SHARED: 172 $array[] = "<D:privilege><D:write-acl/></D:privilege>"; 173 $array[] = "<D:privilege><D:read-acl/></D:privilege>"; 174 $array[] = "<D:privilege><D:read-current-user-privilege-set/></D:privilege>"; 175 break; 176 case CALENDAR_ACL_BUSY: 177 $array[] = "<D:privilege><D:schedule-query-freebusy/></D:privilege>"; 178 $array[] = "<D:privilege><D:read-free-busy/></D:privilege>"; 179 break; 180 } 181 return implode("\n", $array); 182 182 } 183 183 184 184 static function import($data , $params = false) 185 185 { 186 $user = Controller::find(array('concept' => 'user' , 'service' => 'OpenLDAP' ),false,array('filter' => array('=','uid',$params['owner']) ));186 $user = Controller::find(array('concept' => 'user' , 'service' => 'OpenLDAP' ),false,array('filter' => array('=','uid',$params['owner']) , 'notExternal' => true)); 187 187 $params['owner'] = $user[0]['id']; 188 188 … … 214 214 215 215 static function delete($data , $params = false) 216 { 217 $user = Controller::find(array('concept' => 'user' , 'service' => 'OpenLDAP' ),false,array('filter' => array('=','uid',$params['owner']))); 216 { 217 218 $user = Controller::find(array('concept' => 'user' , 'service' => 'OpenLDAP' ),false,array('filter' => array('=','uid',$params['owner']) , 'notExternal' => true)); 219 218 220 $params['owner'] = $user[0]['id']; 219 221 … … 255 257 foreach ($toDelete as $v) 256 258 { 257 $even = Controller::find(array('concept' => 'schedulable') , false , array ( 'filter' => array('AND', array('=' , ' uid' , $v ), array('=' , 'calendar' , $params['calendar']))) );259 $even = Controller::find(array('concept' => 'schedulable') , false , array ( 'filter' => array('AND', array('=' , 'calendar' , $params['calendar']) , array('=' , 'uid' , $v ) ) ) ); 258 260 if(is_array($even) && count($even) > 0 ) 259 261 Controller::delete(array('concept' => 'schedulable' , 'id' => $even[0]['id'])); … … 264 266 static function move($origem , $destino , $owner) 265 267 { 266 $user = Controller::find(array('concept' => 'user' , 'service' => 'OpenLDAP' ),false,array('filter' => array('=','uid',$owner) ));268 $user = Controller::find(array('concept' => 'user' , 'service' => 'OpenLDAP' ),false,array('filter' => array('=','uid',$owner) , 'notExternal' => true)); 267 269 $owner = $user[0]['id']; 268 270 … … 341 343 342 344 static function mkcalendar($location , $name, $description ) 343 { 345 { 344 346 ob_start(); 345 347 require_once ROOTPATH.'/plugins/davicalCliente/caldav-client-v2.php';
Note: See TracChangeset
for help on using the changeset viewer.