Ignore:
Timestamp:
08/10/12 18:39:42 (12 years ago)
Author:
eduardow
Message:

Ticket #3002 - Eventos não são deletados apartir do CalDav?.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2.4/prototype/modules/calendar/interceptors/DAViCalAdapter.php

    r6754 r6995  
    5252    {       
    5353        if( Config::module('useCaldav' , 'expressoCalendar') ) 
    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); 
     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); 
    8181            self::setReadCurrentUserPrivilege(Config::service( 'CalDAV' , 'url' ).'/'.substr($calendar['location'] , 0 , (strpos (  $calendar['location'] ,  '/'  ) + 1 ) )); 
    82             ob_end_clean(); 
    83         } 
     82        ob_end_clean(); 
     83    } 
    8484    } 
    8585     
     
    8787    {       
    8888        if( Config::module('useCaldav' , 'expressoCalendar') ) 
    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' )); 
     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' )); 
    116116            $cal->DoXMLRequest('ACL', $xml); 
    117117            self::setReadCurrentUserPrivilege(Config::service( 'CalDAV' , 'url' ).'/'.substr($calendar['location'] ,  0 ,(strpos (  $calendar['location'] ,  '/'  ) + 1 ) )); 
    118             ob_end_clean(); 
    119              
    120         } 
     118        ob_end_clean(); 
     119         
     120    } 
    121121    } 
    122122     
     
    128128         
    129129        $xml ="<?xml version=\"1.0\" encoding=\"utf-8\" ?> 
    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>"; 
     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>"; 
    140140        ob_start(); 
    141141        require_once ROOTPATH.'/plugins/davicalCliente/caldav-client-v2.php'; 
     
    147147    private static function acltToXML($acls) 
    148148    { 
    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); 
     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); 
    182182    } 
    183183     
    184184    static function import($data , $params = false) 
    185185    {                   
    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));   
    187187        $params['owner'] = $user[0]['id']; 
    188188         
     
    214214     
    215215    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 
    218220        $params['owner'] = $user[0]['id']; 
    219221         
     
    255257            foreach ($toDelete as $v) 
    256258            { 
    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 ) ) ) );             
    258260                 if(is_array($even) && count($even) > 0 ) 
    259261                       Controller::delete(array('concept' => 'schedulable' , 'id' => $even[0]['id'])); 
     
    264266    static function move($origem , $destino , $owner) 
    265267    {   
    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));   
    267269        $owner = $user[0]['id']; 
    268270         
     
    341343     
    342344    static function mkcalendar($location , $name, $description ) 
    343     {    
     345    {    
    344346        ob_start(); 
    345347        require_once ROOTPATH.'/plugins/davicalCliente/caldav-client-v2.php'; 
Note: See TracChangeset for help on using the changeset viewer.