Changeset 24 for trunk/expressoAdmin1_2


Ignore:
Timestamp:
05/10/07 11:51:20 (17 years ago)
Author:
niltonneto
Message:

* empty log message *

Location:
trunk/expressoAdmin1_2
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/expressoAdmin1_2/docs/change_log.txt

    r23 r24  
    5353- Implementado restrição de criação de contas/listas/grupos com nomes 
    5454de contas/grupos de sistemas. Ex: root, amanda, etc ... 
     55 
     5608/05/2007 
     57- Melhorado performance ao editar listas e grupos. 
  • trunk/expressoAdmin1_2/inc/class.ldap_functions.inc.php

    r23 r24  
    694694                { 
    695695                        $justthese = array("cn","uid","uidnumber"); 
    696                         $filter="(&(phpgwAccountType=u)(uid=".$entry[0]['memberuid'][$i]."))"; 
     696                         
     697                        // Montagem dinamica do filtro 
     698                        $filter="(&(phpgwAccountType=u)(|"; 
     699                        for ($k=0; (($k<10) && ($i<$entry[0]['memberuid']['count'])); $k++) 
     700                        { 
     701                                $filter .= "(uid=".$entry[0]['memberuid'][$i].")"; 
     702                                $i++; 
     703                        } 
     704                        $i--; 
     705                        $filter .= "))"; 
     706                         
    697707                        $search = ldap_search($this->ldap, $GLOBALS['phpgw_info']['server']['ldap_context'], $filter, $justthese); 
    698708                        $user_entry = ldap_get_entries($this->ldap, $search); 
    699709 
    700                         if ($user_entry[0]['uid'][0] == '') 
    701                         { 
    702                                 $result['memberuid_info'][$i]['cn'] = '0-UID NAO EXISTE, corrigir manualmente: ' . $entry[0]['memberuid'][$i]; 
    703                                 $result['memberuid_info'][$i]['uid'] = $entry[0]['memberuid'][$i]; 
    704                                 $result['memberuid_info'][$i]['uidnumber'] = $entry[0]['memberuid'][$i]; 
    705                         } 
    706                         else 
    707                         { 
    708                                 $result['memberuid_info'][$i]['cn'] = $user_entry[0]['cn'][0]; 
    709                                 $result['memberuid_info'][$i]['uid'] = $user_entry[0]['uid'][0]; 
    710                                 $result['memberuid_info'][$i]['uidnumber'] = $user_entry[0]['uidnumber'][0]; 
    711                         } 
     710                        for ($j=0; $j<$user_entry['count']; $j++) 
     711                        { 
     712                                $result['memberuid_info'][$user_entry[$j]['uid'][0]]['cn'] = $user_entry[$j]['cn'][0]; 
     713                                $result['memberuid_info'][$user_entry[$j]['uid'][0]]['uidnumber'] = $user_entry[$j]['uidnumber'][0]; 
     714                                $result['memberuid_info'][$user_entry[$j]['uid'][0]]['type'] = 'u'; 
     715                        } 
     716                } 
     717                 
     718                // Retira o count do array 
     719                array_shift($entry[0]['memberuid']); 
     720                 
     721                // Checamos e-mails que não fazem parte do expresso. 
     722                // Criamos um array temporario 
     723                $tmp_array = array(); 
     724                foreach ($result['memberuid_info'] as $uid => $user_data) 
     725                { 
     726                        $tmp_array[] = $uid; 
     727                } 
     728 
     729                // Vemos a diferença 
     730                $array_diff = array_diff($entry[0]['memberuid'], $tmp_array); 
     731                 
     732                // Incluimos no resultado 
     733                foreach ($array_diff as $index=>$uid) 
     734                { 
     735                        $result['memberuid_info'][$uid]['cn'] = $uid; 
    712736                } 
    713737                 
     
    718742                                $result['sambaGroup'] = true; 
    719743                } 
     744 
    720745                return $result; 
    721746        }        
     
    726751                $search = ldap_search($this->ldap, $context, $filter); 
    727752                $entry = ldap_get_entries($this->ldap, $search); 
    728  
     753         
    729754                //Pega o dn do setor do usuario. 
    730755                $entry[0]['dn'] = strtolower($entry[0]['dn']); 
     
    734759                //Retira ultimo pipe. 
    735760                $sector_dn = substr($sector_dn,0,(strlen($sector_dn) - 1)); 
    736                  
     761                         
    737762                $result['context']                              = $sector_dn; 
    738763                $result['uidnumber']                    = $entry[0]['uidnumber'][0]; 
     
    742767                $result['accountStatus']                = $entry[0]['accountstatus'][0]; 
    743768                $result['phpgwAccountVisible']  = $entry[0]['phpgwaccountvisible'][0]; 
    744                  
     769                         
    745770                //Members 
    746771                for ($i=0; $i<$entry[0]['mailforwardingaddress']['count']; $i++) 
    747772                { 
    748                         $justthese = array("cn", "uidnumber", "uid", "phpgwaccounttype"); 
    749                         $filter="(&(|(phpgwAccountType=u)(phpgwAccountType=l))(mail=".$entry[0]['mailforwardingaddress'][$i]."))"; 
     773                        $justthese = array("cn", "uidnumber", "uid", "phpgwaccounttype", "mail"); 
     774                                 
     775                        // Montagem dinamica do filtro 
     776                        $filter="(&(|(phpgwAccountType=u)(phpgwAccountType=l))(|"; 
     777                        for ($k=0; (($k<10) && ($i<$entry[0]['mailforwardingaddress']['count'])); $k++) 
     778                        { 
     779                                $filter .= "(mail=".$entry[0]['mailforwardingaddress'][$i].")"; 
     780                                $i++; 
     781                        } 
     782                        $i--; 
     783                        $filter .= "))"; 
     784                                 
    750785                        $search = ldap_search($this->ldap, $GLOBALS['phpgw_info']['server']['ldap_context'], $filter, $justthese); 
    751786                        $user_entry = ldap_get_entries($this->ldap, $search); 
    752                          
    753                         if ($user_entry['count'] != 0) 
    754                         { 
    755                                 $result['members_info'][$user_entry[0]['uidnumber'][0]]['uid'] = $user_entry[0]['uid'][0]; 
    756                                 $result['members_info'][$user_entry[0]['uidnumber'][0]]['cn'] = $user_entry[0]['cn'][0]; 
    757                                 $result['members_info'][$user_entry[0]['uidnumber'][0]]['type'] = $user_entry[0]['phpgwaccounttype'][0]; 
    758                                 $result['members_info'][$user_entry[0]['uidnumber'][0]]['mailforwardingaddress'] = $entry[0]['mailforwardingaddress'][$i]; 
    759                                 $result['members'][] = $user_entry[0]['uidnumber'][0]; 
    760                         } 
    761                         else 
    762                         { 
    763                                 $result['members_info'][$entry[0]['mailforwardingaddress'][$i]]['uid'] = $entry[0]['mailforwardingaddress'][$i]; 
    764                                 $result['members_info'][$entry[0]['mailforwardingaddress'][$i]]['cn'] = 'E-Mail nao encontrado (' . $entry[0]['mailforwardingaddress'][$i] . ')'; 
    765                                 $result['members_info'][$entry[0]['mailforwardingaddress'][$i]]['mailforwardingaddress'] = $entry[0]['mailforwardingaddress'][$i]; 
    766                                 $result['members'][] = $entry[0]['mailforwardingaddress'][$i]; 
    767                         } 
    768                 } 
    769                  
    770                 return $result; 
     787                                 
     788                        for ($j=0; $j<$user_entry['count']; $j++) 
     789                        { 
     790                                $result['members_info'][$user_entry[$j]['uidnumber'][0]]['uid'] = $user_entry[$j]['uid'][0]; 
     791                                $result['members_info'][$user_entry[$j]['uidnumber'][0]]['cn'] = $user_entry[$j]['cn'][0]; 
     792                                $result['members_info'][$user_entry[$j]['uidnumber'][0]]['type'] = $user_entry[$j]['phpgwaccounttype'][0]; 
     793                                $result['members_info'][$user_entry[$j]['uidnumber'][0]]['mail'] = $user_entry[$j]['mail'][0]; 
     794                                $result['members'][] = $user_entry[$j]['uidnumber'][0]; 
     795                        } 
     796                } 
     797 
     798                // Retira o count do array 
     799                array_shift($entry[0]['mailforwardingaddress']); 
     800 
     801                // Checamos e-mails que não fazem parte do expresso. 
     802                // Criamos um array temporario 
     803                $tmp_array = array(); 
     804                foreach ($result['members_info'] as $uid => $user_data) 
     805                { 
     806                        $tmp_array[] = $user_data['mail']; 
     807                } 
     808 
     809                // Vemos a diferença 
     810                $array_diff = array_diff($entry[0]['mailforwardingaddress'], $tmp_array); 
     811 
     812                // Incluimos no resultado 
     813                foreach ($array_diff as $index=>$mailforwardingaddress) 
     814                { 
     815                        $result['members_info'][$mailforwardingaddress]['uid'] = $mailforwardingaddress; 
     816                        $result['members_info'][$mailforwardingaddress]['cn'] = 'E-Mail nao encontrado'; 
     817                        $result['members_info'][$mailforwardingaddress]['mailforwardingaddress'] = $mailforwardingaddress; 
     818                        $result['members'][] = $mailforwardingaddress; 
     819                } 
     820                return $result;  
    771821        }        
    772822 
  • trunk/expressoAdmin1_2/inc/class.uigroups.inc.php

    r23 r24  
    238238                        // GET all infomations about the group. 
    239239                        $group_info = $this->group->get_info($_GET['gidnumber'], $manager_context); 
    240                         //_debug_array($group_info); 
    241240 
    242241                        unset($GLOBALS['phpgw_info']['flags']['noheader']); 
     
    254253 
    255254                        // Usuarios do grupo. 
     255                        $user_count = 0; 
    256256                        if (count($group_info['memberuid_info']) > 0) 
    257257                        { 
    258                                 foreach ($group_info['memberuid_info'] as $user) 
    259                                 { 
    260                                         $array_users[$user['uidnumber']] = $user['cn']; 
    261                                         $array_users_uid[$user['uidnumber']] = $user['uid']; 
     258                                foreach ($group_info['memberuid_info'] as $uid=>$user_data) 
     259                                { 
     260                                        $array_users[$user_data['uidnumber']] = $user_data['cn']; 
     261                                        $array_users_uid[$user_data['uidnumber']] = $uid; 
     262                                        $array_users_type[$user_data['uidnumber']] = $user_data['type']; 
    262263                                } 
    263264                                natcasesort($array_users); 
    264265                                foreach ($array_users as $uidnumber=>$cn) 
    265266                                { 
    266                                         $ea_select_usersInGroup .= "<option value=" . $uidnumber . ">" . $cn . " [" . $array_users_uid[$uidnumber] . "]</option>"; 
    267                                 } 
     267                                        $user_count++; 
     268                                        if ($array_users_type[$uidnumber] == 'u') 
     269                                        { 
     270                                                $users .= "<option value=" . $uidnumber . ">" . $cn . " [" . $array_users_uid[$uidnumber] . "]</option>"; 
     271                                        } 
     272                                        else 
     273                                        { 
     274                                                $unknow .= "<option value=-1>" . $cn . " [Corrigir manualmente]</option>"; 
     275                                        } 
     276                                } 
     277                                 
     278                                $opt_tmp_users  = '<option  value="-1" disabled>-----------------------------&nbsp;&nbsp;&nbsp;&nbsp;Usuários&nbsp;&nbsp;&nbsp;&nbsp;---------------------------- </option>'."\n"; 
     279                                $opt_tmp_unknow = '<option  value="-1" disabled>--------------------&nbsp;&nbsp;&nbsp;&nbsp;Usuários não encontrados&nbsp;&nbsp;&nbsp;&nbsp;------------------ </option>'."\n"; 
     280                                $ea_select_usersInGroup = $unknow != '' ? $opt_tmp_unknow . $unknow . $opt_tmp_users . $users : $opt_tmp_users . $users; 
    268281                        } 
    269282                         
     
    289302                                'manager_context'                       => $manager_context, 
    290303                                'cn'                                            => $group_info['cn'], 
     304                                'user_count'                            => $user_count, 
    291305                                'description'                           => $group_info['description'], 
    292306                                'apps'                                          => $apps, 
  • trunk/expressoAdmin1_2/inc/class.uimaillists.inc.php

    r23 r24  
    260260                                                $users .= "<option value=" . $uidnumber . ">" . $cn .  " [" . $array_users_uid[$uidnumber] . "]</option>"; 
    261261                                        } 
     262                                        elseif ($array_users_type[$uidnumber] == 'l') 
     263                                        { 
     264                                                $lists .= "<option value=" . $uidnumber . ">" . $cn .  " [" . $array_users_uid[$uidnumber] . "]</option>"; 
     265                                        } 
    262266                                        else 
    263267                                        { 
    264                                                 $lists .= "<option value=" . $uidnumber . ">" . $cn .  " [" . $array_users_uid[$uidnumber] . "]</option>"; 
    265                                         } 
    266                                 } 
    267                                 $opt_tmp_lists = '<option  value="-1" disabled>------------------------------&nbsp;&nbsp;&nbsp;&nbsp;Listas&nbsp;&nbsp;&nbsp;&nbsp;------------------------------ </option>'."\n"; 
    268                                 $opt_tmp_users = '<option  value="-1" disabled>-----------------------------&nbsp;&nbsp;&nbsp;&nbsp;Usuários&nbsp;&nbsp;&nbsp;&nbsp;---------------------------- </option>'."\n"; 
     268                                                $unknow .= "<option value=" . $uidnumber . ">" . $cn .  " [" . $array_users_uid[$uidnumber] . "]</option>"; 
     269                                        } 
     270                                } 
    269271                                 
    270                                 $ea_select_usersInMaillist = $opt_tmp_lists . $lists . $opt_tmp_users . $users; 
     272                                if ($unknow != '') 
     273                                { 
     274                                        $opt_tmp_unknow = '<option  value="-1" disabled>--------------------&nbsp;&nbsp;&nbsp;&nbsp;E-mails não encontrados&nbsp;&nbsp;&nbsp;&nbsp;------------------ </option>'."\n"; 
     275                                        $ea_select_usersInMaillist .= $opt_tmp_unknow . $unknow; 
     276                                } 
     277                                if ($lists != '') 
     278                                { 
     279                                        $opt_tmp_lists  = '<option  value="-1" disabled>------------------------------&nbsp;&nbsp;&nbsp;&nbsp;Listas&nbsp;&nbsp;&nbsp;&nbsp;------------------------------ </option>'."\n"; 
     280                                        $ea_select_usersInMaillist .= $opt_tmp_lists . $lists; 
     281                                } 
     282                                $opt_tmp_users  = '<option  value="-1" disabled>-----------------------------&nbsp;&nbsp;&nbsp;&nbsp;Usuários&nbsp;&nbsp;&nbsp;&nbsp;---------------------------- </option>'."\n"; 
     283                                $ea_select_usersInMaillist .= $opt_tmp_users . $users; 
    271284                        } 
    272285 
  • trunk/expressoAdmin1_2/templates/default/groups_form.tpl

    r23 r24  
    3030                                                        Ocultar este grupo no Expresso? <input type="checkbox" {phpgwaccountvisible_checked} name="phpgwaccountvisible"><br>                                                     
    3131                                                         
    32                                                         <b>{lang_group_users}:</b><br> 
     32                                                        <b>{lang_group_users} (<font color=red>{user_count}</font>):</b><br> 
    3333                                                        <select id="ea_select_usersInGroup" name="members[]" style="width: 400px" multiple size="13">{ea_select_usersInGroup}</select> 
    3434                                                </td> 
Note: See TracChangeset for help on using the changeset viewer.