source: trunk/instant_messenger/bkp/instant_messenger_64/inc/class.contacts_im.inc.php @ 151

Revision 151, 2.4 KB checked in by niltonneto, 16 years ago (diff)

Commit da nova versão do módulo, usando agente em C.
Vide Página do módulo do Trac:
http://www.expressolivre.org/dev/wiki/messenger

A versão anterior encontra-se na subpasta bkp (32/64).

Line 
1<?php
2
3require_once "class.ldap_im.inc.php";
4require_once "class.db_im.inc.php";
5
6class contacts_im
7{
8        private $ldap;
9        private $db_user;
10       
11        function __construct()
12        {
13                $this->ldap = new ldap_im();
14                $this->db_user = new db_im();           
15        }
16
17        private function users_auth_im()
18        {
19                $db_acls = $this->db_user->get_accounts_acl();
20               
21                $search_uids = "|";
22                foreach($db_acls as $tmp)
23                        $search_uids .= "(uidNumber=".$tmp['acl_account'].")";
24
25                // Busca Usuarios
26                $uids = $this->ldap->list_users_ldap($search_uids);
27               
28                $search_groups = "|";
29                foreach($db_acls as $tmp)
30                        $search_groups .= "(gidNumber=".$tmp['acl_account'].")";
31 
32                // Busca Grupos
33                $groups = $this->ldap->list_groups_ldap($search_groups);
34                               
35                $search_uids = "|";
36                if($groups)
37                {
38                        foreach($groups as $tmp)
39                        {
40                                $members = $tmp['members'];     
41                                foreach($members as $mb)               
42                                        $search_uids .= "(uid=".$mb.")";                       
43                        }
44                }
45               
46                if($uids)
47                {
48                        foreach($uids as $tmp) 
49                                $search_uids .= "(uid=".$tmp['uid'].")";
50                }
51                $uids_members = $this->ldap->list_users_ldap($search_uids);     
52                                       
53                if(count($uids_members) > 0)
54                        return $uids_members;
55                else
56                        return 0;
57        }
58               
59        function list_contacts($param)
60        {
61                $users = $this->users_auth_im();
62                $ordenar = array();
63                $return = array();
64                $i = 0;
65               
66                foreach($users as $tmp)
67                        $ordenar[] = $tmp['cn'].";".$tmp['mail'].";".$tmp['uid'].";".$tmp['dn'];
68                                       
69                natsort($ordenar);
70                $uid_unique = @array_values(@array_unique($ordenar));
71               
72                foreach($uid_unique as $tmp)
73                {       
74                        $result = explode(";",$tmp);
75                        if(strtolower($result[3]) == strtolower($param['ou']))
76                        {
77                                $return[$i]['cn']   = $result[0];
78                                $return[$i]['mail'] = $result[1];
79                                $return[$i]['uid']  = $result[2];
80                                $i++;
81                        }
82                        unset($result);
83                }                       
84       
85                if(count($return) > 0)
86                        return $return;
87                else
88                        return 0;
89        }
90       
91        function UserPermission($param)
92        {
93                $db_acls = $this->db_user->get_accounts_acl();
94                $members = array();             
95                $search_uid     = "";
96                $search_groups = "|";
97               
98                $search_uid = $this->ldap->list_users_ldap("uid=".$param['uid']);
99
100                foreach($db_acls as $tmp)
101                        if($tmp['acl_account'] == $search_uid[0]['uidnumber'])
102                                return 1;
103                        else
104                                $search_groups .= "(gidNumber=".$tmp['acl_account'].")";
105
106                $groups = $this->ldap->list_groups_ldap($search_groups);
107
108                if($groups)
109                foreach($groups as $tmp){
110                        $members = $tmp['members'];     
111                        foreach($members as $mb){               
112                                if(trim($mb) == trim($search_uid[0]['uid']))
113                                        return 1;
114                        }                       
115                }
116               
117                return 0;
118        }
119}
120?>
Note: See TracBrowser for help on using the repository browser.