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

Revision 89, 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                        $systemName = strtolower($GLOBALS['phpgw_info']['server']['system_name']);
416                        if ($systemName != '')
417                                $filter = "(&$filter(phpgwSystem=$systemName))";
418                       
419                        foreach ($contexts as $context)
420                        {
421                                $search=ldap_search($ldap_conn, $context, $filter, $justthese);
422                        $info = ldap_get_entries($ldap_conn, $search);
423                        for ($i=0; $i<$info["count"]; $i++)
424                    {
425                        $a_sectors[] = $info[$i]['dn'];
426                    }
427                        }
428               
429                        ldap_close($ldap_conn);
430
431                        // Retiro o count do array info e inverto o array para ordenação.
432                foreach ($a_sectors as $context)
433            {
434                                $array_dn = ldap_explode_dn ( $context, 1 );
435
436                $array_dn_reverse  = array_reverse ( $array_dn, true );
437
438                                // Retirar o indice count do array.
439                                array_pop ( $array_dn_reverse );
440
441                                $inverted_dn[$context] = implode ( "#", $array_dn_reverse );
442                        }
443
444                        // Ordenação
445                        natcasesort($inverted_dn);
446                       
447                        // Construção do select
448                        $level = 0;
449                        $options = array();
450                        foreach ($inverted_dn as $dn=>$invert_ufn)
451                        {
452                $display = '';
453
454                $array_dn_reverse = explode ( "#", $invert_ufn );
455                $array_dn  = array_reverse ( $array_dn_reverse, true );
456
457                $level = count( $array_dn ) - (int)(count(explode(",", $GLOBALS['phpgw_info']['server']['ldap_context'])) + 1);
458
459                if ($level == 0)
460                        $display .= '+';
461                else
462                {
463                                        for ($i=0; $i<$level; $i++)
464                                                $display .= '---';
465                }
466
467                reset ( $array_dn );
468                $display .= ' ' . (current ( $array_dn ) );
469                               
470                                $dn = trim(strtolower($dn));
471                                $options[$dn] = $display;
472                }
473            return $options;
474                }
475               
476                function exist_account_lid($account_lid)
477                {
478                        $conection = $GLOBALS['phpgw']->common->ldapConnect();
479                        $sri = ldap_search($conection, $GLOBALS['phpgw_info']['server']['ldap_context'], "uid=" . $account_lid);
480                        $result = ldap_get_entries($conection, $sri);
481                        return $result['count'];
482                }
483               
484                function exist_email($mail)
485                {
486                        $conection = $GLOBALS['phpgw']->common->ldapConnect();
487                        $sri = ldap_search($conection, $GLOBALS['phpgw_info']['server']['ldap_context'], "mail=" . $mail);
488                        $result = ldap_get_entries($conection, $sri);
489                        ldap_close($conection);
490                       
491                        if ($result['count'] == 0)
492                                return false;
493                        else
494                                return true;
495                }
496               
497                function array_invert($array)
498                {
499                        $result[] = end($array);
500                        while ($item = prev($array))
501                                $result[] = $item;
502                        return $result;
503                }
504               
505                function get_next_id()
506                {
507                        // Busco o ID dos accounts
508                        $query_accounts = "SELECT id FROM phpgw_nextid WHERE appname = 'accounts'";
509                        $GLOBALS['phpgw']->db->query($query_accounts);
510                        while($GLOBALS['phpgw']->db->next_record())
511                        {
512                                $result_accounts[] = $GLOBALS['phpgw']->db->row();
513                        }                       
514                        $accounts_id = $result_accounts[0]['id'];
515                       
516                        // Busco o ID dos groups
517                        $query_groups = "SELECT id FROM phpgw_nextid WHERE appname = 'groups'";
518                        $GLOBALS['phpgw']->db->query($query_groups);
519                        while($GLOBALS['phpgw']->db->next_record())
520                        {
521                                $result_groups[] = $GLOBALS['phpgw']->db->row();
522                        }                       
523                        $groups_id = $result_groups[0]['id'];
524                       
525                        //Retorna o maior dos ID's
526                        if ($accounts_id >= $groups_id)
527                                return $accounts_id;
528                        else
529                                return $groups_id;
530                }
531               
532                function make_list_app($account_lid, $user_applications='', $disabled='')
533                {
534                        // create list of ALL available apps
535                        $availableAppsGLOBALS = $GLOBALS['phpgw_info']['apps'];
536                       
537                        // create list of available apps for the user
538                        $query = "SELECT * FROM phpgw_expressoadmin_apps WHERE manager_lid = '".$account_lid."'";
539                        $GLOBALS['phpgw']->db->query($query);
540                        while($GLOBALS['phpgw']->db->next_record())
541                        {
542                                $availableApps[] = $GLOBALS['phpgw']->db->row();
543                        }
544                       
545                        // Retira alguns modulos
546                        if (count($availableApps))
547                        {
548                                foreach ($availableApps as $key => $value)
549                                {
550                                        if ($value['app'] != 'phpgwapi')
551                                                $tmp[] = $availableApps[$key];
552                                }
553                        }
554                        $availableApps = $tmp;
555                       
556                        // Cria um array com as aplicacoes disponiveis para o manager, com as atributos das aplicacoes.
557                        $availableAppsUser = array();
558                        if (count($availableApps))
559                        {
560                                foreach($availableApps as $app => $title)
561                                {
562                                        if ($availableAppsGLOBALS[$title['app']])
563                                                $availableAppsUser[$title['app']] = $availableAppsGLOBALS[$title['app']];
564                                }
565                        }
566                       
567                        // Loop para criar dinamicamente uma tabela com 3 colunas, cada coluna com um aplicativo e um check box.
568                        $applications_list = '';
569                        $app_col1 = '';
570                        $app_col2 = '';
571                        $app_col3 = '';
572                        $total_apps = count($availableAppsUser);
573                        $i = 0;
574                        foreach($availableAppsUser as $app => $data)
575                        {
576                                // 1 coluna
577                                if (($i +1) % 3 == 1)
578                                {
579                                        $checked = $user_applications[$app] ? 'CHECKED' : '';
580                                        $app_col1 = sprintf("<td>%s</td><td width='10'><input type='checkbox' name='apps[%s]' value='1' %s %s></td>\n",
581                                        $data['title'],$app,$checked, $disabled);
582                                        if ($i == ($total_apps-1))
583                                                $applications_list .= sprintf('<tr bgcolor="%s">%s</tr>','#DDDDDD', $app_col1);
584                                }
585                               
586                                // 2 coluna
587                                if (($i +1) % 3 == 2)
588                                {
589                                        $checked = $user_applications[$app] ? 'CHECKED' : '';
590                                        $app_col2 = sprintf("<td>%s</td><td width='10'><input type='checkbox' name='apps[%s]' value='1' %s %s></td>\n",
591                                        $data['title'],$app,$checked, $disabled);
592                                       
593                                        if ($i == ($total_apps-1))
594                                                $applications_list .= sprintf('<tr bgcolor="%s">%s%s</tr>','#DDDDDD', $app_col1,$app_col2);
595                                }
596                                // 3 coluna
597                                if (($i +1) % 3 == 0)
598                                {
599                                        $checked = $user_applications[$app] ? 'CHECKED' : '';
600                                        $app_col3 = sprintf("<td>%s</td><td width='10'><input type='checkbox' name='apps[%s]' value='1' %s %s></td>\n",
601                                        $data['title'],$app,$checked, $disabled);
602                                       
603                                        // Cria nova linha
604                                        $applications_list .= sprintf('<tr bgcolor="%s">%s%s%s</tr>','#DDDDDD', $app_col1, $app_col2, $app_col3);                                       
605                                }
606                                $i++;
607                        }
608                        return $applications_list;
609                }
610               
611                function exist_attribute_in_ldap($dn, $attribute, $value)
612                {
613                        $connection = $GLOBALS['phpgw']->common->ldapConnect();
614                        $search = ldap_search($connection, $dn, $attribute. "=" . $value);
615                        $result = ldap_get_entries($connection, $search);
616                        ldap_close($connection);
617                        //_debug_array($result);
618                        if ($result['count'] == 0)
619                                return false;
620                        else
621                                return true;   
622                }
623               
624                function getReturnExecuteForm(){
625                        $response = $_SESSION['response'];
626                        $_SESSION['response'] = null;
627                        return $response;
628                }
629
630                function write_log2($action, $groupinfo='', $userinfo='', $appinfo='', $msg_log='')
631                {
632                        $sql = "INSERT INTO phpgw_expressoadmin_log (date, manager, action, groupinfo, userinfo, appinfo, msg) "
633                        . "VALUES('now','" . $_SESSION['phpgw_info']['expresso']['user']['account_lid'] . "','" . strtolower($action) . "','" . strtolower($groupinfo) . "','" . strtolower($userinfo) . "','" . strtolower($appinfo) . "','" .strtolower($msg_log) . "')";
634                        $GLOBALS['phpgw']->db->query($sql);
635                        return;
636                }
637               
638        }
639       
640        class sectors_object
641        {
642                var $sector_name;
643                var $sector_context;
644                var $sector_level;
645                var $sector_leaf;
646                var $sectors_list = array();
647                var $level;
648               
649                function sectors_object($sector_name, $sector_context, $sector_level, $sector_leaf)
650                {
651                        $this->sector_name = $sector_name;
652                        $this->sector_context = $sector_context;
653                        $this->sector_level = $sector_level;
654                        $this->sector_leaf = $sector_leaf;
655                }
656        }
Note: See TracBrowser for help on using the repository browser.