Ignore:
Timestamp:
03/05/13 19:09:20 (11 years ago)
Author:
douglas
Message:

Ticket #3374 - Inconsistências ao criar eventos em nome de uma agenda assinada

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2.5/prototype/services/iCal.php

    r7801 r7969  
    573573                            $schedulable = self::_getSchedulable($uid); 
    574574                $calendar = false; 
    575  
    576                             if ($schedulable) { //Caso o evento exista 
    577                     if (!($calendar = self::_existInMyCalendars($schedulable['id'], $params['owner']) )) { 
     575                $accpeted = true;  
     576                            if ($schedulable) {  
     577                    ///Verifica se o usuario e um participante e se este aceitou o pedido.  
     578                    foreach ($schedulable['participants'] as $value){  
     579                        if ($value['user']['id'] == $params['owner'] &&  ($value['status'] == STATUS_UNANSWERED || $value['status'] == STATUS_DECLINED)){  
     580                            $accpeted  = false;  
     581                        }  
     582                    }  
     583                             //Caso o evento exista  
     584                    if (!($calendar = self::_existInMyCalendars($schedulable['id'], $params['owner'])) || !$accpeted ) {  
    578585                        $calendarToSchedulable = array(); 
    579586                        $calendarToSchedulable['calendar'] = $params['calendar']; 
     
    12261233                                $isOrganizer = true; 
    12271234 
    1228                             if (!self::_existInMyCalendars($schedulable['id'], $params['owner'])) { 
     1235                            if (!self::_existInMyCalendars($schedulable['id'], $params['owner']) || $value['status'] == STATUS_UNANSWERED || $value['status'] == STATUS_DECLINED) { 
    12291236                                $interation = ICAL_ACTION_UPDATE; 
    12301237                                $interation = ( strrpos($value['acl'], ATTENDEE_ACL_PARTICIPATION_REQUIRED) ) ? ICAL_ACTION_IMPORT_REQUIRED : array('action' => ICAL_ACTION_IMPORT, 'type' => 'calendarIds'); 
    12311238                                break; 
    12321239                            } 
    1233                         } else { 
    1234                             if (self::_getTime($component, 'dtstamp') > $schedulable['dtstamp'] || $component->getProperty('sequence', false, false) > $schedulable['sequence']) //Organizador esta requisitando que você atualize o evento 
    1235                                 $interation = ($isOrganizer) ? ICAL_ACTION_ORGANIZER_UPDATE : ICAL_ACTION_UPDATE; 
    12361240                            else 
    1237                                 $interation = ($isOrganizer) ? ICAL_ACTION_ORGANIZER_NONE : ICAL_ACTION_NONE; 
     1241                            {  
     1242                                if (self::_getTime($component, 'dtstamp') > $schedulable['dtstamp'] || $component->getProperty('sequence', false, false) > $schedulable['sequence']) //Organizador esta requisitando que você atualize o evento  
     1243                                    $interation = ($isOrganizer) ? ICAL_ACTION_ORGANIZER_UPDATE : ICAL_ACTION_UPDATE;  
     1244                                else  
     1245                                    $interation = ($isOrganizer) ? ICAL_ACTION_ORGANIZER_NONE : ICAL_ACTION_NONE;  
     1246  
     1247                            }  
    12381248                        } 
    1239  
    1240                     } 
    1241  
     1249                      }  
    12421250                    if (!$isParticipant){ 
    12431251                        if( self::_existInMyCalendars($schedulable['id'], $params['owner']) ){ 
    1244  
    12451252                            $interation = (self::_getTime($component, 'dtstamp') > $schedulable['dtstamp'] ? ICAL_ACTION_UPDATE  :  ICAL_ACTION_NONE); 
    12461253 
     
    12501257 
    12511258                        } 
    1252  
    12531259 
    12541260                    } 
Note: See TracChangeset for help on using the changeset viewer.