Ignore:
Timestamp:
07/16/12 09:51:58 (12 years ago)
Author:
tezza
Message:

Ticket #2963 - Corrigido verificação da preferência do contato dinâmico.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/prototype/rest/catalog/UserContactsResource.php

    r6605 r6783  
    487487    private function isEnabledDynamicContacts($user){ 
    488488 
    489         $sql = 'SELECT preference_value '. 
     489                //recuperando as preferencias (suas preferencias, preferencia padrão, preferencia obrigatoria) 
     490                //dos contatos dinamicos 
     491        $sql = 'SELECT preference_owner, preference_value '. 
    490492                'FROM phpgw_preferences '. 
    491493                'WHERE preference_app = \'expressoMail\' AND '. 
    492                         'preference_owner = ' . $user; 
    493  
    494         $preference = Controller::service('PostgreSQL')->execResultSql($sql, true); 
    495  
    496         if(count($preference) > 0 && isset($preference['preference_value'])){ 
    497                 $preference = unserialize( $preference['preference_value'] ); 
    498  
    499                 if(isset($preference['use_dynamic_contacts'])){ 
    500                         $preference = $preference['use_dynamic_contacts']; 
    501                         return ($preference == '1'); 
    502                 } 
     494                        'preference_owner in (-1,-2, ' . $user . ')'; 
     495 
     496        $preferences = Controller::service('PostgreSQL')->execResultSql($sql); 
     497 
     498                $array = array(); 
     499        if(count($preferences) > 0){ 
     500                        foreach($preferences as $preference){ 
     501                                //recupera a preferencia 
     502                $preference_value = unserialize( $preference['preference_value'] ); 
     503                 
     504                                //gera um array com o owner e o valor da preferencia: 
     505                                //true: SIM  (1) 
     506                                //false: NAO (0) 
     507                                //null: escolha pelo usuario/ usar padrao / sem padrao 
     508                                $value = null; 
     509                                if(isset($preference_value['use_dynamic_contacts'])){ 
     510                                        $value = (isset($preference_value['use_dynamic_contacts'])) ? $preference_value['use_dynamic_contacts'] == '1' : false; 
     511                                } 
     512                                $array[ $preference['preference_owner'] ] = $value; 
     513                        } 
    503514        } 
    504         return false; 
     515 
     516                //preferencia obrigatoria (SIM) 
     517                if(array_key_exists(-1,$array) && $array[-1]){ 
     518                        return true; 
     519                } 
     520                //preferencia do user (SIM) 
     521                else if(array_key_exists($user,$array) && $array[$user] ){ 
     522                        return true; 
     523                } 
     524                //preferencia padrao (SIM) escolhida pelo user 
     525                else if(array_key_exists($user, $array) && $array[$user] === null && 
     526                        array_key_exists(-2, $array) && $array[-2]){ 
     527                        return true; 
     528                } 
     529                return false; 
    505530    } 
    506  
    507531} 
    508532 
Note: See TracChangeset for help on using the changeset viewer.