source: companies/serpro/jabberit_messenger/inc/class.ldap_im.inc.php @ 903

Revision 903, 3.2 KB checked in by niltonneto, 15 years ago (diff)

Importacao inicial do Expresso do Serpro

Line 
1<?php
2
3define('PHPGW_INCLUDE_ROOT', '../');
4define('PHPGW_API_INC','../phpgwapi/inc');
5require_once( PHPGW_API_INC . '/class.common.inc.php');
6
7class ldap_im
8{
9        private $ldap;
10        private $ldap_host;
11        private $ldap_context;
12        private $ldap_dn;
13        private $ldap_pass;
14        private $common;
15        private $jid;
16        private $max_result;
17       
18        public final function __construct()
19        {
20               
21                $this->ldap_host        = $_SESSION['phpgw_info']['jabberit_messenger']['server_ldap_jabberit'];
22                $this->ldap_context     = $_SESSION['phpgw_info']['jabberit_messenger']['context_ldap_jabberit'];
23                $this->ldap_dn          = $_SESSION['phpgw_info']['jabberit_messenger']['user_ldap_jabberit'];
24                $this->ldap_pass        = $_SESSION['phpgw_info']['jabberit_messenger']['password_ldap_jabberit'];
25                $this->jid                      = $_SESSION['phpgw_info']['jabberit_messenger']['user'];
26                $this->max_result       = 50;
27        }
28
29        public final function __destruct()
30        {
31                if( $this->ldap )
32                        ldap_close($this->ldap);
33        }       
34
35        private final function _connect_ldap()
36        {
37                $this->common = new common();
38               
39                if( !$this->ldap ){
40                        $GLOBALS['phpgw_info']['server']['ldap_version3'] = true;
41                        $this->ldap = $this->common->ldapConnect( $this->ldap_host,$this->ldap_dn,$this->ldap_pass );
42                }
43        }
44       
45        public final function list_users_ldap($search, $uidnumber)
46        {
47                $this->_connect_ldap();
48       
49                if( $this->ldap )
50                {
51                        $filter = "(&(phpgwaccounttype=u)(|".$uidnumber.")(".$search ."))";
52                        //SERPRO
53                        //$justthese = array("uid","uidNumber","cn","mail","phpgwAccountVisible","dn","jpegPhoto");
54                        $justthese = array("uid","uidNumber","cn","mail","phpgwAccountVisible","dn","jpegPhoto","description");
55                        $search = ldap_search($this->ldap,$this->ldap_context,$filter,$justthese, 0, $this->max_result + 1);
56                        $entry1 = ldap_get_entries($this->ldap,$search);
57                        $entry = ldap_first_entry( $this->ldap, $search );
58                }
59
60                if( $entry1['count'] > 0 )
61                {
62                        if( count($entry1) < $this->max_result )
63                        {
64                                $i = 0;
65                                $result_user = array();
66                                $result = array();
67
68                                while($entry)
69                                {
70                               
71                                        if ( $entry1[$i]['phpgwaccountvisible'][0] != '-1' )
72                                        {
73                                                $result['uidnumber'] = @ldap_get_values($this->ldap, $entry, 'uidnumber');                     
74                                                $result['mail'] = @ldap_get_values($this->ldap, $entry, 'mail');
75                                                $result['uid'] = @ldap_get_values($this->ldap, $entry, 'uid');
76                                                $result['cn'] = @ldap_get_values($this->ldap, $entry, 'cn');
77                                                //SERPRO
78                                                $result['description'] = @ldap_get_values($this->ldap, $entry, 'description');
79
80                                                foreach ( $result as $key => $value )
81                                                        $result_user[$i][$key] = $value[0];
82
83                                                $ou = explode('dc=', $entry1[$i]['dn']);
84                                                $ou = explode("ou=",$ou[0]);
85                                                $ou = array_pop($ou);
86                                                $result_user[$i]['dn'] = strtoupper(substr($ou,0,strlen($ou)-1));
87
88                                                $result_user[$i]['photo'] = 0;
89                                                $photo = @ldap_get_values_len($this->ldap, $entry, 'jpegphoto');
90                                                if ( $photo )
91                                                {
92                                                        $result_user[$i]['photo'] = 1;
93                                                        $_SESSION['phpgw_info']['jabberit_messenger']['photo'][trim($result_user[$i]['uid'])] = $photo[0];
94                                                }
95                                               
96                                                $i++;
97                                        }                               
98                                       
99                                        $entry = ldap_next_entry($this->ldap,$entry);   
100                                }
101
102                                return $result_user;
103                        }
104                        else
105                        {
106                                return "Many Results";
107                        }
108
109                }
110                return 0;
111        }
112}
113
114?>
Note: See TracBrowser for help on using the repository browser.