source: branches/2.2/expressoAdmin1_2/inc/class.sosectors.inc.php @ 1850

Revision 1850, 4.8 KB checked in by alexandrecorreia, 14 years ago (diff)

Ticket #828 - Corrigida opcao de controle de quotas por OUs no Ldap.

  • Property svn:eol-style set to native
  • Property svn:executable set to *
Line 
1<?php
2        /**********************************************************************************\
3        * Expresso Administração                                                                                                *
4        * by Joao Alfredo Knopik Junior (joao.alfredo@gmail.com, jakjr@celepar.pr.gov.br)   *
5        * ----------------------------------------------------------------------------------*
6        *  This program is free software; you can redistribute it and/or modify it                      *
7        *  under the terms of the GNU General Public License as published by the                        *
8        *  Free Software Foundation; either version 2 of the License, or (at your                       *
9        *  option) any later version.                                                                                                           *
10        \***********************************************************************************/
11
12        class sosectors
13        {
14                var $functions;
15                var $ldap_connection;
16                var $db_functions;
17               
18                function sosectors()
19                {
20                        $this->functions = createobject('expressoAdmin1_2.functions');
21                        $this->db_functions = CreateObject('expressoAdmin1_2.db_functions');
22                       
23                        if ( (!empty($GLOBALS['phpgw_info']['server']['ldap_master_host'])) &&
24                                 (!empty($GLOBALS['phpgw_info']['server']['ldap_master_root_dn'])) &&
25                                 (!empty($GLOBALS['phpgw_info']['server']['ldap_master_root_pw'])) )
26                        {
27                                $this->ldap_connection = $GLOBALS['phpgw']->common->ldapConnect($GLOBALS['phpgw_info']['server']['ldap_master_host'],
28                                                                                                   $GLOBALS['phpgw_info']['server']['ldap_master_root_dn'],
29                                                                                                   $GLOBALS['phpgw_info']['server']['ldap_master_root_pw']);
30                        }
31                        else
32                        {
33                                $this->ldap_connection = $GLOBALS['phpgw']->common->ldapConnect();
34                        }
35                }
36               
37                function exist_sector_name($sector_name, $context)
38                {
39                        $search = ldap_list($this->ldap_connection, $context, "ou=" . $sector_name);
40                        $result = ldap_get_entries($this->ldap_connection, $search);
41                       
42                        if ($result['count'] == 0)
43                                return false;
44                        else
45                                return true;
46                }
47               
48                function write_ldap($dn, $info)
49                {
50                        if ( @ldap_add($this->ldap_connection, $dn, $info) )
51                        {
52                                $this->db_functions->write_log("write on ldap", "$dn");
53                                ldap_close($this->ldap_connection);
54                                return true;
55                        }
56                        else
57                        {
58                                $this->db_functions->write_log("Error write on ldap", "$dn");
59                                ldap_close($this->ldap_connection);
60                                return false;
61                        }
62                }
63               
64                function get_sector_users($context)
65                {
66                        $justthese = array("cn", "uidNumber", "uid");
67                        $filter="(&(phpgwAccountType=u)(uid=*))";
68                        $search=ldap_search($this->ldap_connection, $context, $filter, $justthese);
69                        $result = ldap_get_entries($this->ldap_connection, $search);
70                        return $result;
71                }
72               
73                function get_sector_groups($context)
74                {
75                        $justthese = array("cn", "gidnumber");
76                        $filter="(&(phpgwAccountType=g)(cn=*))";
77                        $search=ldap_search($this->ldap_connection, $context, $filter, $justthese);
78                        $result = ldap_get_entries($this->ldap_connection, $search);
79                        return $result;
80                }
81
82                function get_sector_subsectors($context)
83                {
84                        $justthese = array("ou");
85                        $filter="(objectClass=organizationalUnit)";
86                        $search=ldap_search($this->ldap_connection, $context, $filter, $justthese);
87                        $result = ldap_get_entries($this->ldap_connection, $search);
88                        return $result;
89                }
90               
91                function delete_sector_ldap_recursively($connection, $dn)
92                {
93                        //searching for sub entries
94                        $search=ldap_list($connection,$dn,"ObjectClass=*",array(""));
95                        $info = ldap_get_entries($connection, $search);
96                       
97                        for($i=0;$i<$info['count'];$i++)
98                        {
99                                //deleting recursively sub entries
100                                $result=$this->delete_sector_ldap_recursively($connection,$info[$i]['dn']);
101                                        if(!$result)
102                                        {
103                                                //return result code, if delete fails
104                                                return($result);
105                                        }
106                        }
107                        return(ldap_delete($connection,$dn));
108                }
109               
110                function get_info($context)
111                {
112                        $filter="(objectClass=organizationalUnit)";
113                        $search=ldap_search($this->ldap_connection, $context, $filter);
114                        $result = ldap_get_entries($this->ldap_connection, $search);
115                        return $result;
116                }
117               
118                function add_attribute($dn, $info)
119                {
120                        if (ldap_mod_add($this->ldap_connection, $dn, $info))
121                        {
122                                ldap_close($this->ldap_connection);
123                                return true;
124                        }
125                        else
126                        {
127                                echo lang('Error written in LDAP, function add_attribute'). ldap_error($this->ldap_connection);
128                                ldap_close($this->ldap_connection);
129                                return false;
130                        }
131                }
132
133                function replace_attribute($dn, $info)
134                {
135                        $connection = $GLOBALS['phpgw']->common->ldapConnect();
136                       
137                        if (ldap_mod_replace($connection, $dn, $info))
138                        {
139                                ldap_close($connection);
140                                return true;
141                        }
142                        else
143                        {
144                                echo 'Erro na escrita no LDAP, funcao replace_attribute: ' . ldap_error($connection);
145                                ldap_close($connection);
146                                return false;
147                        }
148                }               
149               
150                function remove_attribute($dn, $info)
151                {
152                        if (ldap_mod_del($this->ldap_connection, $dn, $info))
153                        {
154                                ldap_close($this->ldap_connection);
155                                return true;
156                        }
157                        else
158                        {
159                                echo lang('Error written in LDAP, function remove_attribute'). ldap_error($this->ldap_connection);
160                                ldap_close($this->ldap_connection);
161                                return false;
162                        }
163                }
164        }
165?>
Note: See TracBrowser for help on using the repository browser.