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

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