source: trunk/instant_messenger/inc/class.contacts_im.inc.php @ 36

Revision 36, 2.3 KB checked in by niltonneto, 17 years ago (diff)

* empty log message *

  • Property svn:eol-style set to native
  • Property svn:executable set to *
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                foreach($groups as $tmp){
37                        $members = $tmp['members'];     
38                        foreach($members as $mb)               
39                                $search_uids .= "(uid=".$mb.")";                       
40                }
41               
42                $uids_members = $this->ldap->list_users_ldap($search_uids);
43               
44                foreach($uids_members as $tmp)
45                        $uids[] = $tmp;
46               
47                return $uids;
48               
49        }
50               
51        function list_contacts($param)
52        {
53                $users = $this->users_auth_im();
54                $ordenar = array();
55                $return = array();
56                $i = 0;
57               
58                foreach($users as $tmp)
59                        $ordenar[] = $tmp['cn'].";".$tmp['mail'].";".$tmp['uid'].";".$tmp['dn'];
60                                       
61                natsort($ordenar);
62                $uid_unique = @array_values(@array_unique($ordenar));
63               
64                foreach($uid_unique as $tmp){   
65                        $result = explode(";",$tmp);
66                        if($result[3] == $param['ou']){
67                                $return[$i]['cn']   = $result[0];
68                                $return[$i]['mail'] = $result[1];
69                                $return[$i]['uid']  = $result[2];
70                                $i++;
71                        }
72                        unset($result);
73                }                       
74               
75                if(count($return) > 0)
76                        return $return;
77                else
78                        return 0;
79        }
80       
81        function UserPermission($param)
82        {
83                $db_acls = $this->db_user->get_accounts_acl();
84                $members = array();             
85                $search_uid     = "";
86                $search_groups = "|";
87               
88                $search_uid = $this->ldap->list_users_ldap("uid=".$param['uid']);
89
90                foreach($db_acls as $tmp)
91                        if($tmp['acl_account'] == $search_uid[0]['uidnumber'])
92                                return 1;
93                        else
94                                $search_groups .= "(gidNumber=".$tmp['acl_account'].")";
95
96                $groups = $this->ldap->list_groups_ldap($search_groups);
97
98                if($groups)
99                foreach($groups as $tmp){
100                        $members = $tmp['members'];     
101                        foreach($members as $mb){               
102                                if(trim($mb) == trim($search_uid[0]['uid']))
103                                        return 1;
104                        }                       
105                }
106               
107                return 0;
108        }
109}
110?>
Note: See TracBrowser for help on using the repository browser.