Ignore:
Timestamp:
02/26/08 17:04:07 (16 years ago)
Author:
niltonneto
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/expressoAdmin1_2/inc/class.maillist.inc.php

    r86 r180  
    5050                        $return['status'] = true; 
    5151                         
    52                         //Retira os uids duplicados se existir 
     52                        //Retira os mailForwardingAddress duplicados, se existir algum. 
    5353                        $array_tmp = array(); 
    54                         $array_tmp = array_unique($params['members']); 
    55                         $params['members'] = $array_tmp; 
     54                        $array_tmp = array_unique($params['mailForwardingAddress']); 
     55                        $params['mailForwardingAddress'] = $array_tmp; 
    5656                         
    5757                        // Leio o ID a ser usado na criação do objecto. 
     
    6767                                $id = $next_id['id']; 
    6868                        }                        
    69                         // Pega ID do BD e incrementa de 1. 
    70                         //$id = (($this->db_functions->get_next_id()) + 1); 
    71                         // Incrementa o id no BD. 
    72                         //$this->db_functions->increment_id($id,'accounts'); 
    7369                         
    7470                        // Cria array para incluir no LDAP 
     
    105101                                $maillist_info['phpgwAccountVisible'] = '-1'; 
    106102                         
     103                        /* 
    107104                        foreach($params['members'] as $index=>$uidnumber) 
    108105                        { 
     
    111108                                $this->db_functions->write_log("Adicionado usuario $mail a lista ".$params['cn']." no momento da criação",$dn,$uidnumber,'',''); 
    112109                        } 
     110                        */ 
     111                         
     112                        $maillist_info['mailForwardingAddress'] = $params['mailForwardingAddress']; 
    113113                         
    114114                        $result = $this->ldap_functions->ldap_add_entry($dn, $maillist_info); 
     
    119119                        } 
    120120                         
     121                        /* log */ 
    121122                        if ($return['status'] == true) 
    122123                        { 
    123124                                $this->db_functions->write_log('Criado lista de email','',$dn,'',''); 
     125                                 
     126                                foreach($params['mailForwardingAddress'] as $index=>$mail) 
     127                                { 
     128                                        $this->db_functions->write_log("Adicionado email $mail a lista ".$params['cn']." no momento da criação",$dn,'','',''); 
     129                                } 
    124130                        } 
    125131                         
     
    138144 
    139145                        $return['status'] = true; 
    140                          
    141                         //Retira os uids duplicados se existir 
    142                         $array_tmp = array(); 
    143                         $array_tmp = array_unique($new_values['members']); 
    144                         $new_values['members'] = $array_tmp; 
    145                          
     146 
    146147                        $old_values = $this->get_info($new_values['uidnumber'], $new_values['manager_context']); 
    147148                        $diff = array_diff($new_values, $old_values); 
     
    233234                        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
    234235                        // USERS 
    235  
    236                         if (!$new_values['members']) 
    237                                 $new_values['members'] = array(); 
    238                         if (!$old_values['members']) 
    239                                 $old_values['members'] = array(); 
    240  
    241                         $add_users = array_diff($new_values['members'], $old_values['members']); 
    242                         $remove_users = array_diff($old_values['members'], $new_values['members']); 
     236                        if (!$new_values['mailForwardingAddress']) 
     237                                $new_values['mailForwardingAddress'] = array(); 
     238                        if (!$old_values['mailForwardingAddress']) 
     239                                $old_values['mailForwardingAddress'] = array(); 
     240 
     241                        $add_users = array_diff($new_values['mailForwardingAddress'], $old_values['mailForwardingAddress']); 
     242                        $remove_users = array_diff($old_values['mailForwardingAddress'], $new_values['mailForwardingAddress']); 
     243                         
     244/*                      echo '<pre>'; 
     245                        print_r($new_values);*/ 
    243246                         
    244247                        if (count($add_users)>0) 
    245248                        { 
    246                                 $array_emails_add = array(); 
    247                                 foreach($add_users as $uidnumber) 
    248                                 { 
    249                                         if ($uidnumber != -1) 
     249                                sort($add_users); 
     250                                $result = $this->ldap_functions->add_user2maillist($new_values['uidnumber'], $add_users); 
     251                                 
     252                                /* log */ 
     253                                if (!$result['status']) 
     254                                { 
     255                                        $return['status'] = false; 
     256                                        $return['msg'] .= $result['msg']; 
     257                                } 
     258                                else 
     259                                { 
     260                                        foreach($add_users['mailForwardingAddress'] as $index=>$mail) 
    250261                                        { 
    251                                                 $mail = $this->ldap_functions->uidnumber2mail($uidnumber); 
    252                                                 $array_emails_add[] = $mail; 
    253                                                 $this->db_functions->write_log("Adicionado usuario $mail a lista",$dn,$uidnumber,'',''); 
     262                                                $this->db_functions->write_log("Adicionado usuario $mail a lista de email $dn",$dn,'','',''); 
    254263                                        } 
    255264                                } 
    256                                 $this->ldap_functions->add_user2maillist($new_values['uidnumber'], $array_emails_add); 
    257                         } 
     265                        } 
     266                         
    258267                        if (count($remove_users)>0) 
    259268                        { 
    260                                 $array_emails_remove = array(); 
    261                                 foreach($remove_users as $uidnumber) 
    262                                 { 
    263                                         if ($uidnumber != -1) 
     269                                sort($remove_users); 
     270                                $result = $this->ldap_functions->remove_user2maillist($new_values['uidnumber'], $remove_users); 
     271                                 
     272                                /* log */ 
     273                                if (!$result['status']) 
     274                                { 
     275                                        $return['status'] = false; 
     276                                        $return['msg'] .= $result['msg']; 
     277                                } 
     278                                else 
     279                                { 
     280                                        foreach($remove_users as $index=>$mail) 
    264281                                        { 
    265                                                 $mail = $this->ldap_functions->uidnumber2mail($uidnumber); 
    266                                          
    267                                                 // Não achei o email do usuário no ldap. 
    268                                                 if (empty($mail)) 
    269                                                         $mail = $uidnumber; 
    270                                          
    271                                                 $array_emails_remove[] = $mail; 
    272                                                 $this->db_functions->write_log("Removido usuario $mail da lista",$dn,$uidnumber,'',''); 
     282                                                $this->db_functions->write_log("Removido usuario $mail da lista de email $dn",$dn,'','',''); 
    273283                                        } 
    274284                                } 
    275                                 $this->ldap_functions->remove_user2maillist($new_values['uidnumber'], $array_emails_remove); 
    276285                        } 
    277286                         
     
    431440                        $uidnumber = $params['uidnumber']; 
    432441                        $uid = $this->ldap_functions->uidnumber2uid($uidnumber); 
     442                        $mail = $this->ldap_functions->uidnumber2mail($uidnumber); 
    433443 
    434444                        //LDAP 
    435                         $result_ldap = $this->ldap_functions->delete_maillist($uidnumber); 
     445                        $result_ldap = $this->ldap_functions->delete_maillist($uidnumber, $mail); 
    436446                        if (!$result_ldap['status']) 
    437447                        { 
Note: See TracChangeset for help on using the changeset viewer.