Ignore:
Timestamp:
10/14/13 17:18:20 (11 years ago)
Author:
angelo
Message:

Ticket #3491 - Compatibilizar Expresso com novas versoes do PHP

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sandbox/2.5.1-evolucao/expressoAdmin1_2/inc/class.ldap_functions.inc.php

    r8236 r8237  
    315315                $info['mail']                           = $params['mail']; 
    316316                 
    317                 if ($params['accountStatus'] == 'on') 
     317                if (isset($params['accountStatus']) && $params['accountStatus'] == 'on') 
    318318                        $info['accountStatus'] = 'active'; 
    319319                else 
    320320                        $info['accountStatus'] = array(); 
    321321                 
    322                 if ($params['phpgwAccountVisible'] == 'on') 
     322                if (isset($params['phpgwAccountVisible']) && $params['phpgwAccountVisible'] == 'on') 
    323323                        $info['phpgwAccountVisible'] = '-1'; 
    324324                else 
    325325                        $info['phpgwAccountVisible'] = array(); 
    326326                 
    327                 if ($params['desc'] != '') 
     327                if (isset($params['desc']) && $params['desc'] != '') 
    328328                        $info['description'] = utf8_encode($params['desc']); 
    329329                else 
     
    439439                $del = array(); 
    440440 
    441                 if( $params['mailalternateaddress'] ) 
     441                if( isset($params['mailalternateaddress']) && $params['mailalternateaddress'] ) 
    442442                        $info['mailalternateaddress'] = $params['mailalternateaddress']; 
    443443                else 
     
    449449                        $info['accountStatus'] = array(); 
    450450                 
    451                 if ($params['phpgwAccountVisible'] == 'on') 
     451                if (isset($params['phpgwAccountVisible']) && $params['phpgwAccountVisible'] == 'on') 
    452452                        $info['phpgwAccountVisible'] = '-1'; 
    453453                else 
     
    16121612                                $sector_dn_array = explode(",", $entry[0]['dn']); 
    16131613                $sector_dn_array_count = count($sector_dn_array); 
     1614                                $sector_dn = ''; 
    16141615                                for($i=1; $i<$sector_dn_array_count; ++$i) 
    16151616                                        $sector_dn .= $sector_dn_array[$i] . ','; 
     
    16211622                                $result['uidnumber']                    = $entry[0]['uidnumber'][0]; 
    16221623                                $result['gidnumber']                    = $entry[0]['gidnumber'][0]; 
     1624                                $result['departmentnumber']             = isset($entry[0]['departmentnumber']) ? $entry[0]['departmentnumber'][0] : ''; 
     1625                                $result['givenname']                    = $entry[0]['givenname'][0]; 
     1626                                $result['sn']                                   = utf8_decode($entry[0]['sn'][0]); 
     1627                                $result['telephonenumber']              = isset($entry[0]['telephonenumber']) ? $entry[0]['telephonenumber'][0] : ''; 
     1628                                $result['passwd_expired']               = isset($entry[0]['phpgwlastpasswdchange']) ? $entry[0]['phpgwlastpasswdchange'][0] : ''; 
     1629                                $result['phpgwaccountstatus']   = $entry[0]['phpgwaccountstatus'][0]; 
     1630                                $result['phpgwaccountvisible']  = isset($entry[0]['phpgwaccountvisible']) ? $entry[0]['phpgwaccountvisible'][0] : ''; 
     1631                                $result['accountstatus']                = $entry[0]['accountstatus'][0]; 
     1632                                $result['mail']                                 = $entry[0]['mail'][0]; 
     1633                                $result['mailalternateaddress'] = isset($entry[0]['mailalternateaddress']) ? $entry[0]['mailalternateaddress'] : ''; 
     1634                                $result['mailforwardingaddress']= isset($entry[0]['mailforwardingaddress']) ? $entry[0]['mailforwardingaddress'] : ''; 
     1635                                $result['deliverymode']                 = isset($entry[0]['deliverymode']) ? $entry[0]['deliverymode'][0] : ''; 
     1636                                $result['userPasswordRFC2617']  = isset($entry[0]['userpasswordrfc2617']) ? $entry[0]['userpasswordrfc2617'][0] : ''; 
     1637 
     1638                                //Photo 
     1639                                if (isset($entry[0]['jpegphoto']) && $entry[0]['jpegphoto']['count'] == 1) 
     1640                                        $result['photo_exist'] = 'true'; 
     1641                 
     1642                                // Samba 
     1643                                for ($i=0; $i<$entry[0]['objectclass']['count']; ++$i) 
     1644                                { 
     1645                                        if ($entry[0]['objectclass'][$i] == 'sambaSamAccount') 
     1646                                                $result['sambaUser'] = true; 
     1647                                } 
     1648                                if (($this->current_config['expressoAdmin_samba_support'] == 'true') && ($result['sambaUser'])) 
     1649                                { 
     1650                                        $result['sambaaccflags'] = $entry[0]['sambaacctflags'][0]; 
     1651                                        $result['sambalogonscript'] = $entry[0]['sambalogonscript'][0]; 
     1652                                        $result['homedirectory'] = $entry[0]['homedirectory'][0]; 
     1653                                        $a_tmp = explode("-", $entry[0]['sambasid'][0]); 
     1654                                        array_pop($a_tmp); 
     1655                                        $result['sambasid'] = implode("-", $a_tmp); 
     1656                                } 
     1657 
     1658                                // Verifica o acesso do gerente aos atributos corporativos 
     1659                                if ($this->functions->check_acl($_SESSION['phpgw_session']['session_lid'], 'manipulate_corporative_information')) 
     1660                                { 
     1661                                        $result['corporative_information_employeenumber']= isset($entry[0]['employeenumber']) ? $entry[0]['employeenumber'][0] : ''; 
     1662                                        $result['corporative_information_cpf']                  = isset($entry[0]['cpf']) ? $entry[0]['cpf'][0] : ''; 
     1663                                        $result['corporative_information_rg']                   = isset($entry[0]['rg']) ? $entry[0]['rg'][0] : ''; 
     1664                                        $result['corporative_information_rguf']                 = isset($entry[0]['rguf']) ? $entry[0]['rguf'][0] : ''; 
     1665                                        $result['corporative_information_description']  = isset($entry[0]['description']) ? utf8_decode($entry[0]['description'][0]) : ''; 
     1666                                } 
     1667                                 
     1668                                // MailLists 
     1669                                $result['maillists_info'] = $this->get_user_maillists($result['mail']); 
     1670                                if($result['maillists_info']) 
     1671                                { 
     1672                                        foreach ($result['maillists_info'] as $maillist) 
     1673                                        { 
     1674                                                $result['maillists'][] = $maillist['uid']; 
     1675                                        } 
     1676                                } 
     1677                                 
     1678                                // Groups 
     1679                                $justthese = array("gidnumber","cn"); 
     1680                                $filter="(&(phpgwAccountType=g)(memberuid=".$result['uid']."))"; 
     1681                                $search = ldap_search($this->ldap, $GLOBALS['phpgw_info']['server']['ldap_context'], $filter, $justthese); 
     1682                        ldap_sort($this->ldap, $search, "cn"); 
     1683                        $entries = ldap_get_entries($this->ldap, $search); 
     1684                        for ($i=0; $i<$entries['count']; ++$i) 
     1685                        { 
     1686                                $result['groups_ldap'][ $entries[$i]['gidnumber'][0] ] = utf8_decode($entries[$i]['cn'][0]); 
     1687                        } 
     1688                        } 
     1689                } 
     1690                if (is_array($result)) 
     1691                        return $result; 
     1692                else 
     1693                        return false; 
     1694        } 
     1695 
     1696 
     1697        function get_user_cn_by_uid($uid) 
     1698        { 
     1699            foreach ($this->manager_contexts as $index=>$context) 
     1700            { 
     1701 
     1702                    $justthese = array("cn"); 
     1703                    $filter="(&(phpgwAccountType=u)(uid=".$uid."))"; 
     1704                    $search = ldap_search($this->ldap, $context, $filter, $justthese); 
     1705                    $entry = ldap_get_entries($this->ldap, $search); 
     1706                    if($entry) 
     1707                        return utf8_decode($entry[0]['cn'][0]); 
     1708            } 
     1709            return null; 
     1710        } 
     1711 
     1712        function get_group_cn_by_gidnumber($gidnumber) 
     1713        { 
     1714            foreach ($this->manager_contexts as $index=>$context) 
     1715                { 
     1716                 
     1717                    $justthese = array("cn"); 
     1718                    $filter="(&(phpgwAccountType=g)(gidNumber=".$gidnumber."))"; 
     1719                    $search = ldap_search($this->ldap, $context, $filter, $justthese); 
     1720                    $entry = ldap_get_entries($this->ldap, $search); 
     1721                    if($entry) 
     1722                        return utf8_decode($entry[0]['cn'][0]); 
     1723                        } 
     1724            return null; 
     1725                } 
     1726                 
     1727         
     1728        function get_user_info_by_uid($uid) 
     1729        { 
     1730                foreach ($this->manager_contexts as $index=>$context) 
     1731                { 
     1732                        $filter="(&(phpgwAccountType=u)(uid=".$uid."))"; 
     1733                        $justthese = array("cn"); 
     1734                        $search = ldap_search($this->ldap, $context, $filter); 
     1735                        $entry = ldap_get_entries($this->ldap, $search); 
     1736                         
     1737                        if ($entry['count']) 
     1738                        { 
     1739                                //Pega o dn do setor do usuario. 
     1740                                $entry[0]['dn'] = strtolower($entry[0]['dn']); 
     1741                                $sector_dn_array = explode(",", $entry[0]['dn']); 
     1742                $sector_dn_array_count = count($sector_dn_array); 
     1743                                for($i=1; $i<$sector_dn_array_count; ++$i) 
     1744                                        $sector_dn .= $sector_dn_array[$i] . ','; 
     1745                                //Retira ultimo pipe. 
     1746                                $sector_dn = substr($sector_dn,0,(strlen($sector_dn) - 1)); 
     1747                 
     1748                                $result['context']                              = $sector_dn; 
     1749                                $result['uid']                                  = $entry[0]['uid'][0]; 
     1750                                $result['cn']                                   = utf8_decode($entry[0]['cn'][0]); 
     1751                                $result['uidnumber']                    = $entry[0]['uidnumber'][0]; 
     1752                                $result['gidnumber']                    = $entry[0]['gidnumber'][0]; 
    16231753                                $result['departmentnumber']             = $entry[0]['departmentnumber'][0]; 
    16241754                                $result['givenname']                    = $entry[0]['givenname'][0]; 
    1625                                 $result['sn']                                   = utf8_decode($entry[0]['sn'][0]); 
     1755                                $result['sn']                                   = $entry[0]['sn'][0]; 
    16261756                                $result['telephonenumber']              = $entry[0]['telephonenumber'][0]; 
    16271757                                $result['passwd_expired']               = $entry[0]['phpgwlastpasswdchange'][0]; 
     
    16921822                        return false; 
    16931823        } 
    1694  
    1695  
    1696         function get_user_cn_by_uid($uid) 
    1697         { 
    1698             foreach ($this->manager_contexts as $index=>$context) 
    1699             { 
    1700  
    1701                     $justthese = array("cn"); 
    1702                     $filter="(&(phpgwAccountType=u)(uid=".$uid."))"; 
    1703                     $search = ldap_search($this->ldap, $context, $filter, $justthese); 
    1704                     $entry = ldap_get_entries($this->ldap, $search); 
    1705                     if($entry) 
    1706                         return utf8_decode($entry[0]['cn'][0]); 
    1707             } 
    1708             return null; 
    1709         } 
    1710  
    1711         function get_group_cn_by_gidnumber($gidnumber) 
    1712         { 
    1713             foreach ($this->manager_contexts as $index=>$context) 
    1714                 { 
    1715                  
    1716                     $justthese = array("cn"); 
    1717                     $filter="(&(phpgwAccountType=g)(gidNumber=".$gidnumber."))"; 
    1718                     $search = ldap_search($this->ldap, $context, $filter, $justthese); 
    1719                     $entry = ldap_get_entries($this->ldap, $search); 
    1720                     if($entry) 
    1721                         return utf8_decode($entry[0]['cn'][0]); 
    1722                         } 
    1723             return null; 
    1724                 } 
    1725                  
    1726          
    1727         function get_user_info_by_uid($uid) 
    1728         { 
    1729                 foreach ($this->manager_contexts as $index=>$context) 
    1730                 { 
    1731                         $filter="(&(phpgwAccountType=u)(uid=".$uid."))"; 
    1732                         $justthese = array("cn"); 
    1733                         $search = ldap_search($this->ldap, $context, $filter); 
    1734                         $entry = ldap_get_entries($this->ldap, $search); 
    1735                          
    1736                         if ($entry['count']) 
    1737                         { 
    1738                                 //Pega o dn do setor do usuario. 
    1739                                 $entry[0]['dn'] = strtolower($entry[0]['dn']); 
    1740                                 $sector_dn_array = explode(",", $entry[0]['dn']); 
    1741                 $sector_dn_array_count = count($sector_dn_array); 
    1742                                 for($i=1; $i<$sector_dn_array_count; ++$i) 
    1743                                         $sector_dn .= $sector_dn_array[$i] . ','; 
    1744                                 //Retira ultimo pipe. 
    1745                                 $sector_dn = substr($sector_dn,0,(strlen($sector_dn) - 1)); 
    1746                  
    1747                                 $result['context']                              = $sector_dn; 
    1748                                 $result['uid']                                  = $entry[0]['uid'][0]; 
    1749                                 $result['cn']                                   = utf8_decode($entry[0]['cn'][0]); 
    1750                                 $result['uidnumber']                    = $entry[0]['uidnumber'][0]; 
    1751                                 $result['gidnumber']                    = $entry[0]['gidnumber'][0]; 
    1752                                 $result['departmentnumber']             = $entry[0]['departmentnumber'][0]; 
    1753                                 $result['givenname']                    = $entry[0]['givenname'][0]; 
    1754                                 $result['sn']                                   = $entry[0]['sn'][0]; 
    1755                                 $result['telephonenumber']              = $entry[0]['telephonenumber'][0]; 
    1756                                 $result['passwd_expired']               = $entry[0]['phpgwlastpasswdchange'][0]; 
    1757                                 $result['phpgwaccountstatus']   = $entry[0]['phpgwaccountstatus'][0]; 
    1758                                 $result['phpgwaccountvisible']  = $entry[0]['phpgwaccountvisible'][0]; 
    1759                                 $result['accountstatus']                = $entry[0]['accountstatus'][0]; 
    1760                                 $result['mail']                                 = $entry[0]['mail'][0]; 
    1761                                 $result['mailalternateaddress'] = $entry[0]['mailalternateaddress']; 
    1762                                 $result['mailforwardingaddress']= $entry[0]['mailforwardingaddress']; 
    1763                                 $result['deliverymode']                 = $entry[0]['deliverymode'][0]; 
    1764                                 $result['userPasswordRFC2617']  = $entry[0]['userpasswordrfc2617'][0]; 
    1765  
    1766                                 //Photo 
    1767                                 if ($entry[0]['jpegphoto']['count'] == 1) 
    1768                                         $result['photo_exist'] = 'true'; 
    1769                  
    1770                                 // Samba 
    1771                                 for ($i=0; $i<$entry[0]['objectclass']['count']; ++$i) 
    1772                                 { 
    1773                                         if ($entry[0]['objectclass'][$i] == 'sambaSamAccount') 
    1774                                                 $result['sambaUser'] = true; 
    1775                                 } 
    1776                                 if (($this->current_config['expressoAdmin_samba_support'] == 'true') && ($result['sambaUser'])) 
    1777                                 { 
    1778                                         $result['sambaaccflags'] = $entry[0]['sambaacctflags'][0]; 
    1779                                         $result['sambalogonscript'] = $entry[0]['sambalogonscript'][0]; 
    1780                                         $result['homedirectory'] = $entry[0]['homedirectory'][0]; 
    1781                                         $a_tmp = explode("-", $entry[0]['sambasid'][0]); 
    1782                                         array_pop($a_tmp); 
    1783                                         $result['sambasid'] = implode("-", $a_tmp); 
    1784                                 } 
    1785  
    1786                                 // Verifica o acesso do gerente aos atributos corporativos 
    1787                                 if ($this->functions->check_acl($_SESSION['phpgw_session']['session_lid'], 'manipulate_corporative_information')) 
    1788                                 { 
    1789                                         $result['corporative_information_employeenumber']= $entry[0]['employeenumber'][0]; 
    1790                                         $result['corporative_information_cpf']                  = $entry[0]['cpf'][0]; 
    1791                                         $result['corporative_information_rg']                   = $entry[0]['rg'][0]; 
    1792                                         $result['corporative_information_rguf']                 = $entry[0]['rguf'][0]; 
    1793                                         $result['corporative_information_description']  = utf8_decode($entry[0]['description'][0]); 
    1794                                 } 
    1795                                  
    1796                                 // MailLists 
    1797                                 $result['maillists_info'] = $this->get_user_maillists($result['mail']); 
    1798                                 if($result['maillists_info']) 
    1799                                 { 
    1800                                         foreach ($result['maillists_info'] as $maillist) 
    1801                                         { 
    1802                                                 $result['maillists'][] = $maillist['uid']; 
    1803                                         } 
    1804                                 } 
    1805                                  
    1806                                 // Groups 
    1807                                 $justthese = array("gidnumber","cn"); 
    1808                                 $filter="(&(phpgwAccountType=g)(memberuid=".$result['uid']."))"; 
    1809                                 $search = ldap_search($this->ldap, $GLOBALS['phpgw_info']['server']['ldap_context'], $filter, $justthese); 
    1810                         ldap_sort($this->ldap, $search, "cn"); 
    1811                         $entries = ldap_get_entries($this->ldap, $search); 
    1812                         for ($i=0; $i<$entries['count']; ++$i) 
    1813                         { 
    1814                                 $result['groups_ldap'][ $entries[$i]['gidnumber'][0] ] = utf8_decode($entries[$i]['cn'][0]); 
    1815                         } 
    1816                         } 
    1817                 } 
    1818                 if (is_array($result)) 
    1819                         return $result; 
    1820                 else 
    1821                         return false; 
    1822         } 
    18231824                 
    18241825        function get_user_maillists($mail) 
     
    18471848                } 
    18481849         
    1849         if($a_tmp) { 
     1850        if(isset($a_tmp) && $a_tmp) { 
    18501851                natcasesort($a_tmp); 
    18511852         
     
    18571858        } 
    18581859        ldap_close($ldapMasterConnect); 
    1859                 return $return; 
     1860                return (isset($return) ? $return : array()); 
    18601861        } 
    18611862         
     
    21072108                                 
    21082109                                $entry = ldap_get_entries($this->ldap, $search); 
    2109                                 if ($entry['count'] == 0) 
     2110                                if (isset($entry) && $entry['count'] == 0) 
    21102111                                        $result['groups_info'][$i]['cn'] = '_' . $this->functions->lang('group only exist on DB, but does not exist on ldap'); 
    21112112                                         
    21122113                                else 
    21132114                                { 
    2114                                         $result['groups_info'][$i]['uid'] = $entry[0]['uid'][0]; 
    2115                                         $result['groups_info'][$i]['cn'] = $entry[0]['cn'][0]; 
     2115                                        $result['groups_info'][$i]['uid'] = isset($entry[0]['uid']) ? $entry[0]['uid'][0] : ''; 
     2116                                        $result['groups_info'][$i]['cn'] = isset($entry[0]['cn']) ? $entry[0]['cn'][0] : ''; 
    21162117                                } 
    21172118                                $result['groups_info'][$i]['gidnumber'] = $gidnumber; 
     
    22732274                $attrs['memberuid'] = $user_info['uid']; 
    22742275                 
    2275                 if (count($user_info['groups_info'])) 
     2276                if (isset($user_info['groups_info']) && count($user_info['groups_info'])) 
    22762277                { 
    22772278                        foreach ($user_info['groups_info'] as $group_info) 
     
    23742375                for ($i=0; $i<=$entry['count']; ++$i) 
    23752376            { 
    2376                         $dn = $entry[$i]['dn']; 
    2377                 @ldap_mod_del ( $this->ldap, $dn,  $attrs); 
     2377                        if (isset($entry[$i])){ 
     2378                                $dn = $entry[$i]['dn']; 
     2379                        @ldap_mod_del ( $this->ldap, $dn,  $attrs); 
     2380                    }    
    23782381            } 
    23792382                 
     
    28162819                        $return['accountStatus']                = $entrie[0]['accountstatus'][0]; 
    28172820 
    2818                         $return['phpgwAccountVisible']  = $entrie[0]['phpgwaccountvisible'][0]; 
     2821                        $return['phpgwAccountVisible']  = isset($entrie[0]['phpgwaccountvisible']) ? $entrie[0]['phpgwaccountvisible'][0] : ''; 
    28192822                        $return['cn']                   = utf8_decode($entrie[0]['cn'][0]); 
    28202823                        $return['mail']                                 = $entrie[0]['mail'][0]; 
    28212824                        $return['description']                  = utf8_decode($entrie[0]['description'][0]); 
    28222825                        $return['dn']                   = utf8_decode($entrie[0]['dn']); 
    2823                         $return['mailalternateaddress'] = $entrie[0]['mailalternateaddress']; 
     2826                        $return['mailalternateaddress'] = isset($entrie[0]['mailalternateaddress']) ? $entrie[0]['mailalternateaddress'] : ''; 
    28242827                } 
    28252828                 
Note: See TracChangeset for help on using the changeset viewer.