Ignore:
Timestamp:
01/11/12 16:42:50 (12 years ago)
Author:
cristiano
Message:

Ticket #2434 - Inclusão do novo módulo de agenda no ambiente trunk

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/prototype/modules/calendar/interceptors/DBMapping.php

    r5341 r5366  
    683683        
    684684        $newCriteria = $original['criteria']; 
    685          
    686         $newCriteria['filter'] = array('AND',$newCriteria['filter'] , array('=' , 'owner', $_SESSION['wallet']['user']['uidNumber']) );         
    687         $externalUsers = Controller::find( $newuri , $original['properties'] ? $original['properties'] : null , $newCriteria ); 
    688          
    689         if(is_array($externalUsers)) 
    690         { 
    691             foreach ($externalUsers as $i => $v) 
    692                 $externalUsers[$i]['isExternal'] = '1'; 
    693         } 
    694         else 
    695             $externalUsers = array(); 
    696          
    697         if(!is_array($result)) 
    698                 $result = array(); 
    699              
    700         return array_merge($result, $externalUsers);     
     685        $valid = true; 
     686        self::validExternalUserCriteria($newCriteria, self::$calendar_ex_participantMap, $valid); 
     687        if($valid == true) 
     688        { 
     689             $newCriteria['filter'] = array('AND',$newCriteria['filter'] , array('=' , 'owner', $_SESSION['wallet']['user']['uidNumber']) );         
     690            $externalUsers = Controller::find( $newuri , $original['properties'] ? $original['properties'] : null , $newCriteria ); 
     691 
     692            if(is_array($externalUsers)) 
     693            { 
     694                foreach ($externalUsers as $i => $v) 
     695                    $externalUsers[$i]['isExternal'] = '1'; 
     696            } 
     697            else 
     698                $externalUsers = array(); 
     699 
     700            if(!is_array($result)) 
     701                    $result = array(); 
     702 
     703            return array_merge($result, $externalUsers);     
     704        } 
     705        
    701706    } 
    702707 
     
    975980    }   
    976981     
     982    private static function validExternalUserCriteria( $filter, $map , &$ref ) 
     983    { 
     984        if (!is_array($filter) || count($filter) <= 0) 
     985            return null; 
     986 
     987        $op = array_shift($filter); 
     988 
     989        if (is_array($filter[0])) { 
     990            foreach ($filter as $i => $f) 
     991                $filter[$i] = self::validExternalUserCriteria($f, $map ,$findCalendar ); 
     992        } 
     993        else 
     994        { 
     995           if( isset($filter[0]) && !in_array($filter[0] , self::$calendar_ex_participantMap)) 
     996             $ref = false; 
     997   
     998            else 
     999                $filter[0] = isset($map[$filter[0]]) ? $map[$filter[0]] : $filter[0]; 
     1000        } 
     1001 
     1002        array_unshift($filter, $op); 
     1003 
     1004        return( $filter ); 
     1005    } 
     1006     
    9771007    private static function schedulable2calendarToObject($Schedulable) 
    9781008    { 
Note: See TracChangeset for help on using the changeset viewer.