Changeset 6819 for branches/2.4


Ignore:
Timestamp:
07/19/12 14:48:03 (12 years ago)
Author:
eduardow
Message:

Ticket #2963 - Corrigido verificação da preferencia do contato dinamico.

Location:
branches/2.4/prototype/rest/catalog
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/2.4/prototype/rest/catalog/DynamicContactResource.php

    r6754 r6819  
    331331    private function isEnabledDynamicContacts($user){ 
    332332 
    333         $sql = 'SELECT preference_value '. 
     333                //recuperando as preferencias (suas preferencias, preferencia padrão, preferencia obrigatoria)  
     334                    //dos contatos dinamicos  
     335                $sql = 'SELECT preference_owner, preference_value '.  
    334336                'FROM phpgw_preferences '. 
    335337                'WHERE preference_app = \'expressoMail\' AND '. 
    336                         'preference_owner = ' . $user; 
    337  
    338         $preference = Controller::service('PostgreSQL')->execResultSql($sql, true); 
    339  
    340         if(count($preference) > 0 && isset($preference['preference_value'])){ 
    341                 $preference = unserialize( $preference['preference_value'] ); 
    342  
    343                 if(isset($preference['use_dynamic_contacts'])){ 
    344                         $preference = $preference['use_dynamic_contacts']; 
    345                         return ($preference == '1'); 
    346                 } 
     338                        'preference_owner in (-1,-2, ' . $user . ')';  
     339                  
     340        $preferences = Controller::service('PostgreSQL')->execResultSql($sql);  
     341  
     342                $array = array();  
     343        if(count($preferences) > 0){  
     344                        foreach($preferences as $preference){  
     345                            //recupera a preferencia  
     346                $preference_value = unserialize( $preference['preference_value'] );  
     347                  
     348                                //gera um array com o owner e o valor da preferencia:  
     349                                //true: SIM  (1)  
     350                                //false: NAO (0)  
     351                                //null: escolha pelo usuario/ usar padrao / sem padrao  
     352                                $value = null;  
     353                                if(isset($preference_value['use_dynamic_contacts'])){  
     354                                        $value = (isset($preference_value['use_dynamic_contacts'])) ? $preference_value['use_dynamic_contacts'] == '1' : false;  
     355                                }  
     356                                $array[ $preference['preference_owner'] ] = $value;  
     357                        } 
    347358        } 
    348         return false; 
     359                        //preferencia obrigatoria (SIM)  
     360                if(array_key_exists(-1,$array) && $array[-1]){  
     361                        return true;  
     362                }  
     363                //preferencia do user (SIM)  
     364                else if(array_key_exists($user,$array) && $array[$user] ){  
     365                        return true;  
     366                }  
     367                //preferencia padrao (SIM) escolhida pelo user  
     368                else if(array_key_exists($user, $array) && $array[$user] === null &&  
     369                        array_key_exists(-2, $array) && $array[-2]){  
     370                        return true;  
     371                }  
     372                return false;  
    349373    } 
    350374} 
  • branches/2.4/prototype/rest/catalog/DynamicContactsResource.php

    r6754 r6819  
    290290    private function isEnabledDynamicContacts($user){ 
    291291 
    292         $sql = 'SELECT preference_value '. 
    293                 'FROM phpgw_preferences '. 
    294                 'WHERE preference_app = \'expressoMail\' AND '. 
    295                         'preference_owner = ' . $user; 
    296  
    297         $preference = Controller::service('PostgreSQL')->execResultSql($sql, true); 
    298  
    299         if(count($preference) > 0 && isset($preference['preference_value'])){ 
    300                 $preference = unserialize( $preference['preference_value'] ); 
    301  
    302                 if(isset($preference['use_dynamic_contacts'])){ 
    303                         $preference = $preference['use_dynamic_contacts']; 
    304                         return ($preference == '1'); 
    305                 } 
    306         } 
    307         return false; 
     292                                //recuperando as preferencias (suas preferencias, preferencia padrão, preferencia obrigatoria)  
     293                //dos contatos dinamicos  
     294        $sql = 'SELECT preference_owner, preference_value '.  
     295                'FROM phpgw_preferences '.  
     296                'WHERE preference_app = \'expressoMail\' AND '.  
     297                        'preference_owner in (-1,-2, ' . $user . ')';  
     298  
     299        $preferences = Controller::service('PostgreSQL')->execResultSql($sql);  
     300  
     301                $array = array();  
     302        if(count($preferences) > 0){  
     303                        foreach($preferences as $preference){  
     304                                //recupera a preferencia  
     305                $preference_value = unserialize( $preference['preference_value'] );  
     306                  
     307                                //gera um array com o owner e o valor da preferencia:  
     308                                //true: SIM  (1)  
     309                                //false: NAO (0)  
     310                                //null: escolha pelo usuario/ usar padrao / sem padrao  
     311                                $value = null;  
     312                                if(isset($preference_value['use_dynamic_contacts'])){  
     313                                        $value = (isset($preference_value['use_dynamic_contacts'])) ? $preference_value['use_dynamic_contacts'] == '1' : false;  
     314                                }  
     315                                $array[ $preference['preference_owner'] ] = $value;  
     316                        }  
     317        }  
     318  
     319                //preferencia obrigatoria (SIM)  
     320                if(array_key_exists(-1,$array) && $array[-1]){  
     321                        return true;  
     322                                } 
     323                                //preferencia do user (SIM)  
     324                else if(array_key_exists($user,$array) && $array[$user] ){  
     325                        return true;  
     326                }  
     327                //preferencia padrao (SIM) escolhida pelo user  
     328                else if(array_key_exists($user, $array) && $array[$user] === null &&  
     329                        array_key_exists(-2, $array) && $array[-2]){  
     330                        return true;  
     331                }  
     332                return false; 
    308333    } 
    309334 
  • branches/2.4/prototype/rest/catalog/UserContactsResource.php

    r6754 r6819  
    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        } 
     515        //preferencia obrigatoria (SIM)  
     516        if(array_key_exists(-1,$array) && $array[-1]){  
     517                return true;  
     518        }  
     519        //preferencia do user (SIM)  
     520        else if(array_key_exists($user,$array) && $array[$user] ){  
     521                return true;  
     522        }  
     523        //preferencia padrao (SIM) escolhida pelo user  
     524        else if(array_key_exists($user, $array) && $array[$user] === null &&  
     525                array_key_exists(-2, $array) && $array[-2]){  
     526                return true;  
     527        }  
    504528        return false; 
    505529    } 
    506  
    507530} 
    508531 
Note: See TracChangeset for help on using the changeset viewer.