Changeset 24 for trunk/expressoAdmin1_2/inc/class.ldap_functions.inc.php
- Timestamp:
- 05/10/07 11:51:20 (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/expressoAdmin1_2/inc/class.ldap_functions.inc.php
r23 r24 694 694 { 695 695 $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 697 707 $search = ldap_search($this->ldap, $GLOBALS['phpgw_info']['server']['ldap_context'], $filter, $justthese); 698 708 $user_entry = ldap_get_entries($this->ldap, $search); 699 709 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; 712 736 } 713 737 … … 718 742 $result['sambaGroup'] = true; 719 743 } 744 720 745 return $result; 721 746 } … … 726 751 $search = ldap_search($this->ldap, $context, $filter); 727 752 $entry = ldap_get_entries($this->ldap, $search); 728 753 729 754 //Pega o dn do setor do usuario. 730 755 $entry[0]['dn'] = strtolower($entry[0]['dn']); … … 734 759 //Retira ultimo pipe. 735 760 $sector_dn = substr($sector_dn,0,(strlen($sector_dn) - 1)); 736 761 737 762 $result['context'] = $sector_dn; 738 763 $result['uidnumber'] = $entry[0]['uidnumber'][0]; … … 742 767 $result['accountStatus'] = $entry[0]['accountstatus'][0]; 743 768 $result['phpgwAccountVisible'] = $entry[0]['phpgwaccountvisible'][0]; 744 769 745 770 //Members 746 771 for ($i=0; $i<$entry[0]['mailforwardingaddress']['count']; $i++) 747 772 { 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 750 785 $search = ldap_search($this->ldap, $GLOBALS['phpgw_info']['server']['ldap_context'], $filter, $justthese); 751 786 $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; 771 821 } 772 822
Note: See TracChangeset
for help on using the changeset viewer.