source: trunk/expressoAdmin1_2/inc/class.functions.inc.php @ 64

Revision 64, 20.4 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        /**********************************************************************************\
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        include_once('class.db_functions.inc.php');
13        include_once(PHPGW_API_INC.'/class.config.inc.php');
14       
15        class functions
16        {
17                var $public_functions = array
18                (
19                        'make_array_acl'        => True,
20                        'check_acl'                     => True,
21                        'read_acl'                      => True,
22                        'exist_account_lid'     => True,
23                        'exist_email'           => True,
24                        'array_invert'          => True
25                );
26               
27                var $nextmatchs;
28                var $sectors_list = array();
29                var $current_config;
30               
31                function functions()
32                {
33                        $this->db_functions = new db_functions;
34                        $GLOBALS['phpgw']->db = $this->db_functions->db;
35                       
36                        //$c = CreateObject('phpgwapi.config','expressoAdmin1_2');
37                        $c = new config;
38                        $c->read_repository();
39                        $this->current_config = $c->config_data;
40                }
41               
42                // Account and type of access. Return: Have access ? (true/false)
43                function check_acl($account_lid, $access)
44                {
45                        $acl = $this->read_acl($account_lid);
46                        $array_acl = $this->make_array_acl($acl['acl']);
47                       
48                        //What access ?? In the IF, verify if have access.
49                        switch($access)
50                        {
51                                case list_users:
52                                        if ($array_acl[acl_add_users] || $array_acl[acl_edit_users] || $array_acl[acl_delete_users] || $array_acl[acl_change_users_password] || $array_acl[acl_change_users_quote] || $array_acl[acl_edit_sambausers_attributes] || $array_acl[acl_view_users] || $array_acl[acl_manipulate_corporative_information])
53                                                return true;
54                                        break;
55                                case add_users:
56                                        if ($array_acl[acl_add_users])
57                                                return true;
58                                        break;
59                                case edit_users:
60                                        if ($array_acl[acl_edit_users])
61                                                return true;
62                                        break;
63                                case delete_users:
64                                        if ($array_acl[acl_delete_users])
65                                                return true;
66                                        break;
67                                case rename_users:
68                                        if ($array_acl[acl_rename_users])
69                                                return true;
70                                        break;
71                                case view_users:
72                                        if ($array_acl[acl_view_users])
73                                                return true;
74                                        break;
75                                case manipulate_corporative_information:
76                                        if ($array_acl[acl_manipulate_corporative_information])
77                                                return true;
78                                        break;
79                                case change_users_password:
80                                        if ($array_acl[acl_change_users_password])
81                                                return true;
82                                        break;
83                                case change_users_quote:
84                                        if ($array_acl[acl_change_users_quote])
85                                                return true;
86                                        break;
87                                case set_user_default_password:
88                                        if ($array_acl[acl_set_user_default_password])
89                                                return true;
90                                        break;
91                                case empty_user_inbox:
92                                        if (($array_acl[acl_empty_user_inbox]) && ($array_acl[acl_edit_users]))
93                                                return true;
94                                        break;
95                                case edit_sambausers_attributes:
96                                        if ($array_acl[acl_edit_sambausers_attributes])
97                                                return true;
98                                        break;
99                                case edit_sambadomains:
100                                        if ($array_acl[acl_edit_sambadomains])
101                                                return true;
102                                        break;
103                               
104                                case list_groups:
105                                        if ($array_acl[acl_add_groups] || $array_acl[acl_edit_groups] || $array_acl[acl_delete_groups])
106                                                return true;
107                                        break;
108                                case add_groups:
109                                        if ($array_acl[acl_add_groups])
110                                                return true;
111                                        break;
112                                case edit_groups:
113                                        if ($array_acl[acl_edit_groups])
114                                                return true;
115                                        break;
116                                case delete_groups:
117                                        if ($array_acl[acl_delete_groups])
118                                                return true;
119                                        break;
120                                case edit_email_groups:
121                                        if ($array_acl[acl_edit_email_groups])
122                                                return true;
123                                        break;
124                               
125                                case list_maillists:
126                                        if ($array_acl[acl_add_maillists] || $array_acl[acl_edit_maillists] || $array_acl[acl_delete_maillists])
127                                                return true;
128                                        break;
129                                case add_maillists:
130                                        if ($array_acl[acl_add_maillists])
131                                                return true;
132                                        break;
133                                case edit_maillists:
134                                        if ($array_acl[acl_edit_maillists])
135                                                return true;
136                                        break;
137                                case delete_maillists:
138                                        if ($array_acl[acl_delete_maillists])
139                                                return true;
140                                        break;
141
142                                case list_sectors:
143                                        if ($array_acl[acl_create_sectors] || $array_acl[acl_edit_sectors] || $array_acl[acl_delete_sectors])
144                                                return true;
145                                        break;
146                                case create_sectors:
147                                        if ($array_acl[acl_create_sectors])
148                                                return true;
149                                        break;
150                                case edit_sectors:
151                                        if ($array_acl[acl_edit_sectors])
152                                                return true;
153                                        break;
154                                case delete_sectors:
155                                        if ($array_acl[acl_delete_sectors])
156                                                return true;
157                                        break;
158
159                                case view_global_sessions:
160                                        if ($array_acl[acl_view_global_sessions])
161                                                return true;
162                                        break;
163
164                                case list_computers:
165                                        if ($array_acl[acl_create_computers] || $array_acl[acl_edit_computers] || $array_acl[acl_delete_computers])
166                                                return true;
167                                        break;
168                                case create_computers:
169                                        if ($array_acl[acl_create_computers])
170                                                return true;
171                                        break;
172                                case edit_computers:
173                                        if ($array_acl[acl_edit_computers])
174                                                return true;
175                                        break;
176                                case delete_computers:
177                                        if ($array_acl[acl_delete_computers])
178                                                return true;
179                                        break;
180
181                                case view_logs:
182                                        if ($array_acl[acl_view_logs])
183                                                return true;
184                                        break;
185                       
186                                case display_groups:
187                                        if ( $array_acl[acl_edit_users] || $array_acl[acl_view_users] || ($array_acl[acl_edit_sambausers_attributes] && ($this->current_config['expressoAdmin_samba_support'] == 'true')) )
188                                                return true;
189                                        break;
190                                case display_emailconfig:
191                                        if ($array_acl[acl_edit_users] || $array_acl[acl_view_users])
192                                                return true;
193                                        break;
194                                case display_applications:
195                                        if ($array_acl[acl_edit_users] || $array_acl[acl_view_users])
196                                                return true;
197                                        break;
198                                case display_emaillists:
199                                        if ($array_acl[acl_edit_users] || $array_acl[acl_view_users])
200                                                return true;
201                                        break;
202
203                                default:
204                                        return false;   
205                        }
206                        return false;
207                }
208               
209                // Read acl from db
210                function read_acl($account_lid)
211                {
212                        $acl = $this->db_functions->read_acl($account_lid);
213                       
214                        $result['acl'] = $acl[0]['acl'];
215                        $result['manager_lid'] = $acl[0]['manager_lid'];
216                        $result['raw_context'] = $acl[0]['context'];
217                       
218                        $all_contexts = split("%", $acl[0]['context']);
219                        foreach ($all_contexts as $index=>$context)
220                        {
221                                $result['contexts'][] = $context;
222                                $result['contexts_display'][] = str_replace(", ", ".", ldap_dn2ufn( $context ));
223                        }
224                       
225                        return $result;
226                }
227               
228                // Make a array read humam
229                // Last acl:    268435456, 536870912
230                function make_array_acl($acl)
231                {
232                        $array_acl['acl_add_users'] = $acl & 1;
233                        $array_acl['acl_edit_users'] = $acl & 2;
234                        $array_acl['acl_delete_users'] = $acl & 4;
235                        $array_acl['acl_rename_users'] = $acl & 8388608;
236                        $array_acl['acl_view_users'] = $acl & 33554432;
237                        $array_acl['acl_manipulate_corporative_information'] = $acl & 268435456;
238                        $array_acl['acl_add_groups'] = $acl & 16;
239                        $array_acl['acl_edit_groups'] = $acl & 32;
240                        $array_acl['acl_delete_groups'] = $acl & 64;
241                        $array_acl['acl_edit_email_groups'] = $acl & 67108864;
242                        $array_acl['acl_change_users_password'] = $acl & 128;
243                        $array_acl['acl_change_users_quote'] = $acl & 262144;
244                        $array_acl['acl_set_user_default_password'] = $acl & 524288;
245                        $array_acl['acl_empty_user_inbox'] = $acl & 134217728;
246                        $array_acl['acl_edit_sambausers_attributes'] = $acl & 32768;
247                        $array_acl['acl_edit_sambadomains'] = $acl & 16777216;
248                        $array_acl['acl_add_maillists'] = $acl & 256;
249                        $array_acl['acl_edit_maillists'] = $acl & 512;
250                        $array_acl['acl_delete_maillists'] = $acl & 1024;
251                        $array_acl['acl_create_sectors'] = $acl & 4096;
252                        $array_acl['acl_edit_sectors'] = $acl & 8192;
253                        $array_acl['acl_delete_sectors'] = $acl & 16384;
254                        $array_acl['acl_view_global_sessions'] = $acl & 65536;
255                        $array_acl['acl_view_logs'] = $acl & 131072;
256                        $array_acl['acl_create_computers'] = $acl & 1048576;
257                        $array_acl['acl_edit_computers'] = $acl & 2097152;
258                        $array_acl['acl_delete_computers'] = $acl & 4194304;
259                        return $array_acl;
260                }
261               
262                function get_list($type, $query, $contexts)
263                {
264                        $dn                     = $GLOBALS['phpgw_info']['server']['ldap_root_dn'];
265                        $passwd         = $GLOBALS['phpgw_info']['server']['ldap_root_pw'];
266                        $ldap_conn      = ldap_connect($GLOBALS['phpgw_info']['server']['ldap_host']);
267                        ldap_set_option($ldap_conn, LDAP_OPT_PROTOCOL_VERSION, 3);
268                        ldap_set_option($ldap_conn, LDAP_OPT_REFERRALS, 0);
269                        ldap_bind($ldap_conn,$dn,$passwd);
270                       
271                        if ($type == 'accounts')
272                        {
273                                $justthese = array("uidnumber", "uid", "cn", "mail");
274                                $filter="(&(phpgwAccountType=u)(|(uid=*".$query."*)(sn=*".$query."*)(cn=*".$query."*)(givenName=*".$query."*)(mail=$query*)(mailAlternateAddress=$query*)))";
275
276                                $tmp = array();
277                                foreach ($contexts as $index=>$context)
278                                {
279                                        $search=ldap_search($ldap_conn, $context, $filter, $justthese);
280                                        $info = ldap_get_entries($ldap_conn, $search);
281                                       
282                                        for ($i=0; $i < $info['count']; $i++)
283                                        {
284                                                $tmp[$info[$i]['uid'][0]]['account_id']  = $info[$i]['uidnumber'][0];
285                                                $tmp[$info[$i]['uid'][0]]['account_lid'] = $info[$i]['uid'][0];
286                                                $tmp[$info[$i]['uid'][0]]['account_cn']  = $info[$i]['cn'][0];
287                                                $tmp[$info[$i]['uid'][0]]['account_mail']= $info[$i]['mail'][0];
288                                                $sort[] = $info[$i]['uid'][0];
289                                        }
290                                }
291                                ldap_close($ldap_conn);
292                               
293                                if (count($sort))
294                                {
295                                        natcasesort($sort);
296                                        foreach ($sort as $user_uid)
297                                                $return[$user_uid] = $tmp[$user_uid];
298                                }
299                               
300                                return $return;
301                        }
302                        elseif($type == 'groups')
303                        {
304                                $filter="(&(phpgwAccountType=g)(cn=*$query*))";
305                                $justthese = array("gidnumber", "cn", "description");
306                               
307                                $tmp = array();
308                                foreach ($contexts as $index=>$context)
309                                {
310                                        $search=ldap_search($ldap_conn, $context, $filter, $justthese);
311                                        $info = ldap_get_entries($ldap_conn, $search);
312                                        for ($i=0; $i < $info['count']; $i++)
313                                        {
314                                                $tmp[$info[$i]['cn'][0]]['cn']= $info[$i]['cn'][0];
315                                                $tmp[$info[$i]['cn'][0]]['description']= $info[$i]['description'][0];
316                                                $tmp[$info[$i]['cn'][0]]['gidnumber']= $info[$i]['gidnumber'][0];
317                                                $sort[] = $info[$i]['cn'][0];
318                                        }
319                                }
320                                ldap_close($ldap_conn);
321                               
322                                natcasesort($sort);
323                                foreach ($sort as $group_cn)
324                                        $return[$group_cn] = $tmp[$group_cn];
325                               
326                                return $return;
327                        }
328                        elseif($type == 'maillists')
329                        {
330                                $filter="(&(phpgwAccountType=l)(|(cn=*".$query."*)(uid=*".$query."*)(mail=*".$query."*)))";
331                                $justthese = array("uidnumber", "cn", "uid", "mail");
332
333                                $tmp = array();
334                                foreach ($contexts as $index=>$context)
335                                {
336                                        $search=ldap_search($ldap_conn, $context, $filter, $justthese);
337                                        $info = ldap_get_entries($ldap_conn, $search);
338                                       
339                                        for ($i=0; $i < $info['count']; $i++)
340                                        {
341                                                $tmp[$info[$i]['uid'][0]]['uid']                = $info[$i]['uid'][0];
342                                                $tmp[$info[$i]['uid'][0]]['name']               = $info[$i]['cn'][0];
343                                                $tmp[$info[$i]['uid'][0]]['uidnumber']  = $info[$i]['uidnumber'][0];
344                                                $tmp[$info[$i]['uid'][0]]['email']              = $info[$i]['mail'][0];
345                                                $sort[] = $info[$i]['uid'][0];
346                                        }
347                                }
348                                ldap_close($ldap_conn);
349                               
350                                natcasesort($sort);
351                                foreach ($sort as $maillist_uid)
352                                        $return[$maillist_uid] = $tmp[$maillist_uid];
353                               
354                                return $return;
355                        }
356                        elseif($type == 'computers')
357                        {
358                                $filter="(&(objectClass=sambaSAMAccount)(|(sambaAcctFlags=[W          ])(sambaAcctFlags=[DW         ])(sambaAcctFlags=[I          ])(sambaAcctFlags=[S          ]))(cn=*".$query."*))";
359                                $justthese = array("cn","uidNumber","description");
360
361                                $tmp = array();
362                                foreach ($contexts as $index=>$context)
363                                {
364                                        $search=ldap_search($ldap_conn, $context, $filter, $justthese);
365                                        $info = ldap_get_entries($ldap_conn, $search);
366                                        for ($i=0; $i < $info['count']; $i++)
367                                        {
368                                                $tmp[$info[$i]['cn'][0]]['cn']                  = $info[$i]['cn'][0];
369                                                $tmp[$info[$i]['cn'][0]]['uidNumber']   = $info[$i]['uidnumber'][0];
370                                                $tmp[$info[$i]['cn'][0]]['description'] = utf8_decode($info[$i]['description'][0]);
371                                                $sort[] = $info[$i]['cn'][0];
372                                        }
373
374                                }
375                                ldap_close($ldap_conn);
376                               
377                                natcasesort($sort);
378                                foreach ($sort as $computer_cn)
379                                        $return[$computer_cn] = $tmp[$computer_cn];
380                               
381                                return $return;
382                        }
383                }
384               
385                function get_organizations($context, $selected='', $referral=false, $show_invisible_ou=true)
386                {
387                        $s = CreateObject('phpgwapi.sector_search_ldap');
388                        $sectors_info = $s->get_organizations($context, $selected, $referral, $show_invisible_ou);
389                        return $sectors_info;
390                }               
391               
392                function get_sectors($selected='', $referral=false, $show_invisible_ou=true)
393                {
394                        $s = CreateObject('phpgwapi.sector_search_ldap');
395                        $sectors_info = $s->get_sectors($selected, $referral, $show_invisible_ou);
396                        return $sectors_info;
397                }               
398 
399                // Get list of all levels, this function is used for sectors module.
400                function get_sectors_list($contexts)
401                {
402                        $a_sectors = array();
403                       
404                        $dn                     = $GLOBALS['phpgw_info']['server']['ldap_root_dn'];
405                        $passwd         = $GLOBALS['phpgw_info']['server']['ldap_root_pw'];
406                        $ldap_conn      = ldap_connect($GLOBALS['phpgw_info']['server']['ldap_host']);
407                       
408                        ldap_set_option($ldap_conn, LDAP_OPT_PROTOCOL_VERSION, 3);
409                        ldap_set_option($ldap_conn, LDAP_OPT_REFERRALS, 0);
410                        ldap_bind($ldap_conn,$dn,$passwd);
411                       
412                        $justthese = array("dn");
413                        $filter = "(ou=*)";
414                       
415                        foreach ($contexts as $context)
416                        {
417                                $search=ldap_search($ldap_conn, $context, $filter, $justthese);
418                        $info = ldap_get_entries($ldap_conn, $search);
419                        for ($i=0; $i<$info["count"]; $i++)
420                    {
421                        $a_sectors[] = $info[$i]['dn'];
422                    }
423                        }
424               
425                        ldap_close($ldap_conn);
426
427                        // Retiro o count do array info e inverto o array para ordenação.
428                foreach ($a_sectors as $context)
429            {
430                                // Necessário, pq em uma busca com ldapsearch ou=*, traz tb o próprio ou.
431                                /*
432                                if (strtolower($dn) == $contexts[0])
433                                        continue;
434                                */
435
436                                $array_dn = ldap_explode_dn ( $context, 1 );
437
438                $array_dn_reverse  = array_reverse ( $array_dn, true );
439
440                                // Retirar o indice count do array.
441                                array_pop ( $array_dn_reverse );
442
443                                $inverted_dn[$context] = implode ( "#", $array_dn_reverse );
444                        }
445
446                        // Ordenação
447                        natcasesort($inverted_dn);
448                       
449                        // Construção do select
450                        $level = 0;
451                        $options = array();
452                        foreach ($inverted_dn as $dn=>$invert_ufn)
453                        {
454                $display = '';
455
456                $array_dn_reverse = explode ( "#", $invert_ufn );
457                $array_dn  = array_reverse ( $array_dn_reverse, true );
458
459                $level = count( $array_dn ) - (int)(count(explode(",", $GLOBALS['phpgw_info']['server']['ldap_context'])) + 1);
460
461                if ($level == 0)
462                        $display .= '+';
463                else
464                {
465                                        for ($i=0; $i<$level; $i++)
466                                                $display .= '---';
467                }
468
469                reset ( $array_dn );
470                $display .= ' ' . (current ( $array_dn ) );
471                               
472                                $dn = trim(strtolower($dn));
473                                $options[$dn] = $display;
474                }
475            return $options;
476                }
477               
478                function exist_account_lid($account_lid)
479                {
480                        $conection = $GLOBALS['phpgw']->common->ldapConnect();
481                        $sri = ldap_search($conection, $GLOBALS['phpgw_info']['server']['ldap_context'], "uid=" . $account_lid);
482                        $result = ldap_get_entries($conection, $sri);
483                        return $result['count'];
484                }
485               
486                function exist_email($mail)
487                {
488                        $conection = $GLOBALS['phpgw']->common->ldapConnect();
489                        $sri = ldap_search($conection, $GLOBALS['phpgw_info']['server']['ldap_context'], "mail=" . $mail);
490                        $result = ldap_get_entries($conection, $sri);
491                        ldap_close($conection);
492                       
493                        if ($result['count'] == 0)
494                                return false;
495                        else
496                                return true;
497                }
498               
499                function array_invert($array)
500                {
501                        $result[] = end($array);
502                        while ($item = prev($array))
503                                $result[] = $item;
504                        return $result;
505                }
506               
507                function get_next_id()
508                {
509                        // Busco o ID dos accounts
510                        $query_accounts = "SELECT id FROM phpgw_nextid WHERE appname = 'accounts'";
511                        $GLOBALS['phpgw']->db->query($query_accounts);
512                        while($GLOBALS['phpgw']->db->next_record())
513                        {
514                                $result_accounts[] = $GLOBALS['phpgw']->db->row();
515                        }                       
516                        $accounts_id = $result_accounts[0]['id'];
517                       
518                        // Busco o ID dos groups
519                        $query_groups = "SELECT id FROM phpgw_nextid WHERE appname = 'groups'";
520                        $GLOBALS['phpgw']->db->query($query_groups);
521                        while($GLOBALS['phpgw']->db->next_record())
522                        {
523                                $result_groups[] = $GLOBALS['phpgw']->db->row();
524                        }                       
525                        $groups_id = $result_groups[0]['id'];
526                       
527                        //Retorna o maior dos ID's
528                        if ($accounts_id >= $groups_id)
529                                return $accounts_id;
530                        else
531                                return $groups_id;
532                }
533               
534                function make_list_app($account_lid, $user_applications='', $disabled='')
535                {
536                        // create list of ALL available apps
537                        $availableAppsGLOBALS = $GLOBALS['phpgw_info']['apps'];
538                       
539                        // create list of available apps for the user
540                        $query = "SELECT * FROM phpgw_expressoadmin_apps WHERE manager_lid = '".$account_lid."'";
541                        $GLOBALS['phpgw']->db->query($query);
542                        while($GLOBALS['phpgw']->db->next_record())
543                        {
544                                $availableApps[] = $GLOBALS['phpgw']->db->row();
545                        }
546                       
547                        // Retira alguns modulos
548                        if (count($availableApps))
549                        {
550                                foreach ($availableApps as $key => $value)
551                                {
552                                        if ($value['app'] != 'phpgwapi')
553                                                $tmp[] = $availableApps[$key];
554                                }
555                        }
556                        $availableApps = $tmp;
557                       
558                        // Cria um array com as aplicacoes disponiveis para o manager, com as atributos das aplicacoes.
559                        $availableAppsUser = array();
560                        if (count($availableApps))
561                        {
562                                foreach($availableApps as $app => $title)
563                                {
564                                        if ($availableAppsGLOBALS[$title['app']])
565                                                $availableAppsUser[$title['app']] = $availableAppsGLOBALS[$title['app']];
566                                }
567                        }
568                       
569                        // Loop para criar dinamicamente uma tabela com 3 colunas, cada coluna com um aplicativo e um check box.
570                        $applications_list = '';
571                        $app_col1 = '';
572                        $app_col2 = '';
573                        $app_col3 = '';
574                        $total_apps = count($availableAppsUser);
575                        $i = 0;
576                        foreach($availableAppsUser as $app => $data)
577                        {
578                                // 1 coluna
579                                if (($i +1) % 3 == 1)
580                                {
581                                        $checked = $user_applications[$app] ? 'CHECKED' : '';
582                                        $app_col1 = sprintf("<td>%s</td><td width='10'><input type='checkbox' name='apps[%s]' value='1' %s %s></td>\n",
583                                        $data['title'],$app,$checked, $disabled);
584                                        if ($i == ($total_apps-1))
585                                                $applications_list .= sprintf('<tr bgcolor="%s">%s</tr>','#DDDDDD', $app_col1);
586                                }
587                               
588                                // 2 coluna
589                                if (($i +1) % 3 == 2)
590                                {
591                                        $checked = $user_applications[$app] ? 'CHECKED' : '';
592                                        $app_col2 = sprintf("<td>%s</td><td width='10'><input type='checkbox' name='apps[%s]' value='1' %s %s></td>\n",
593                                        $data['title'],$app,$checked, $disabled);
594                                       
595                                        if ($i == ($total_apps-1))
596                                                $applications_list .= sprintf('<tr bgcolor="%s">%s%s</tr>','#DDDDDD', $app_col1,$app_col2);
597                                }
598                                // 3 coluna
599                                if (($i +1) % 3 == 0)
600                                {
601                                        $checked = $user_applications[$app] ? 'CHECKED' : '';
602                                        $app_col3 = sprintf("<td>%s</td><td width='10'><input type='checkbox' name='apps[%s]' value='1' %s %s></td>\n",
603                                        $data['title'],$app,$checked, $disabled);
604                                       
605                                        // Cria nova linha
606                                        $applications_list .= sprintf('<tr bgcolor="%s">%s%s%s</tr>','#DDDDDD', $app_col1, $app_col2, $app_col3);                                       
607                                }
608                                $i++;
609                        }
610                        return $applications_list;
611                }
612               
613                function exist_attribute_in_ldap($dn, $attribute, $value)
614                {
615                        $connection = $GLOBALS['phpgw']->common->ldapConnect();
616                        $search = ldap_search($connection, $dn, $attribute. "=" . $value);
617                        $result = ldap_get_entries($connection, $search);
618                        ldap_close($connection);
619                        //_debug_array($result);
620                        if ($result['count'] == 0)
621                                return false;
622                        else
623                                return true;   
624                }
625               
626                function getReturnExecuteForm(){
627                        $response = $_SESSION['response'];
628                        $_SESSION['response'] = null;
629                        return $response;
630                }
631
632                function write_log2($action, $groupinfo='', $userinfo='', $appinfo='', $msg_log='')
633                {
634                        $sql = "INSERT INTO phpgw_expressoadmin_log (date, manager, action, groupinfo, userinfo, appinfo, msg) "
635                        . "VALUES('now','" . $_SESSION['phpgw_info']['expresso']['user']['account_lid'] . "','" . strtolower($action) . "','" . strtolower($groupinfo) . "','" . strtolower($userinfo) . "','" . strtolower($appinfo) . "','" .strtolower($msg_log) . "')";
636                        $GLOBALS['phpgw']->db->query($sql);
637                        return;
638                }
639               
640        }
641       
642        class sectors_object
643        {
644                var $sector_name;
645                var $sector_context;
646                var $sector_level;
647                var $sector_leaf;
648                var $sectors_list = array();
649                var $level;
650               
651                function sectors_object($sector_name, $sector_context, $sector_level, $sector_leaf)
652                {
653                        $this->sector_name = $sector_name;
654                        $this->sector_context = $sector_context;
655                        $this->sector_level = $sector_level;
656                        $this->sector_leaf = $sector_leaf;
657                }
658        }
Note: See TracBrowser for help on using the repository browser.