source: companies/serpro/instant_messenger/inc/class.contacts_im.inc.php @ 903

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

Importacao inicial do Expresso do Serpro

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/*
70 * ----------------------------------------------------------------------------
71 * SERPRO
72 */
73                foreach($users as $tmp)
74                        $ordenar[] = $tmp['cn'].";".$tmp['mail'].";".$tmp['description'].";".$tmp['dn'];
75/*
76 * ----------------------------------------------------------------------------
77 */
78                                       
79                natsort($ordenar);
80                $uid_unique = @array_values(@array_unique($ordenar));
81               
82                foreach($uid_unique as $tmp)
83                {       
84                        $result = explode(";",$tmp);
85                        if(strtolower($result[3]) == strtolower($param['ou']))
86                        {
87                                $return[$i]['cn']   = $result[0];
88                                $return[$i]['mail'] = $result[1];
89                                $return[$i]['uid']  = $result[2];
90                                $i++;
91                        }
92                        unset($result);
93                }                       
94       
95                if(count($return) > 0)
96                        return $return;
97                else
98                        return 0;
99        }
100       
101        function UserPermission($param)
102        {
103                $db_acls = $this->db_user->get_accounts_acl();
104                $members = array();             
105                $search_uid     = "";
106                $search_groups = "|";
107               
108                $search_uid = $this->ldap->list_users_ldap("uid=".$param['uid']);
109
110                foreach($db_acls as $tmp)
111                        if($tmp['acl_account'] == $search_uid[0]['uidnumber'])
112                                return 1;
113                        else
114                                $search_groups .= "(gidNumber=".$tmp['acl_account'].")";
115
116                $groups = $this->ldap->list_groups_ldap($search_groups);
117
118                if($groups)
119                foreach($groups as $tmp){
120                        $members = $tmp['members'];     
121                        foreach($members as $mb){               
122                                if(trim($mb) == trim($search_uid[0]['uid']))
123                                        return 1;
124                        }                       
125                }
126               
127                return 0;
128        }
129}
130?>
Note: See TracBrowser for help on using the repository browser.