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

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