source: trunk/calendar/templates/default/listUsers.php @ 7655

Revision 7655, 6.2 KB checked in by douglasz, 11 years ago (diff)

Ticket #3236 - Melhorias de performance no codigo do Expresso.

  • Property svn:executable set to *
Line 
1<?php                   
2                /***************************************************************************
3                * Expresso Livre                                                           *
4                * http://www.expressolivre.org                                             *
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        $GLOBALS['phpgw_info']['flags'] = array(
13                'noheader' => True,
14                'nonavbar' => True,
15                'currentapp' => 'calendar'             
16        );
17       
18        include('../../../header.inc.php');
19        include('../../../phpgwapi/templates/default/head.inc.php');
20
21        $owner = $GLOBALS['_GET']['owner'];
22       
23        if(!@is_object($GLOBALS['phpgw']->js))  {
24                $GLOBALS['phpgw']->js = CreateObject('phpgwapi.javascript');
25        }
26       
27        $GLOBALS['phpgw']->js->validate_file('jscode','scripts','preferences');         
28        $t = &$GLOBALS['phpgw']->template;                                             
29        // seta o Template
30        $t->set_file(array('addUser_t' => '../../../calendar/templates/default/listUsers.tpl'));
31       
32        $obj_account = CreateObject('phpgwapi.accounts',$this->bo->owner);
33
34        $post_select_organization = $_POST['select_organization'];
35        $post_select_sector = $_POST['select_sector'];
36        $change_organization = $_POST['change_organization'];
37       
38        $obj_org_sector = CreateObject('phpgwapi.sector_search_ldap');
39        if ((!$post_select_organization) && (!$post_select_sector)) //primeira vez
40        {
41                $user_org = $obj_account->get_organization($GLOBALS['phpgw_info']['user']['account_dn']);
42                $user_sector = $obj_account->get_sector($GLOBALS['phpgw_info']['user']['account_dn']);
43                $user_context = $obj_account->get_context($GLOBALS['phpgw_info']['user']['account_dn']);
44               
45                $organizations_info = $obj_org_sector->organization_search($GLOBALS['phpgw_info']['server']['ldap_context']);
46                @asort($organizations_info);
47                @reset($organizations_info);                                   
48                $sectors_info = $obj_org_sector->sector_search('ou='.$user_org.','.$GLOBALS['phpgw_info']['server']['ldap_context']);
49        }
50        else //mudou uma das combos
51        {
52                $user_org = $post_select_organization;
53                $user_sector = $post_select_sector;
54                if ($change_organization == "True")
55                        $user_context = 'ou='.$user_org.','.$GLOBALS['phpgw_info']['server']['ldap_context'];
56                else
57                        $user_context = $post_select_sector;
58                $organizations_info = $obj_org_sector->organization_search($GLOBALS['phpgw_info']['server']['ldap_context']);
59                @asort($organizations_info);
60                @reset($organizations_info);                                   
61                $sectors_info = $obj_org_sector->sector_search('ou='.$user_org.','.$GLOBALS['phpgw_info']['server']['ldap_context']);
62        }
63               
64        foreach($organizations_info as $organization)
65        {
66                $combo_organization .= '<option value="' . $organization . '"';         
67               
68                if (!$post_select_organization)
69                {
70                        if(strtolower($organization) == strtolower($user_org))
71                        {
72                                $combo_organization .= ' selected';
73                        }
74                }
75                else
76                {
77                        if(strtolower($organization) == strtolower($post_select_organization))
78                        {
79                                $combo_organization .= ' selected';
80                        }
81                }       
82                $combo_organization .= '>' .$organization.'</option>'."\n";
83        }
84       
85        $combo_sector .= '<option value="ou='.$user_org.','.$GLOBALS['phpgw_info']['server']['ldap_context'].'"> --------- </option>'."\n";
86        foreach($sectors_info as $sector)
87        {
88                if ($sector->sector_level == 1)
89                {
90                        $sector->sector_name = '- '.$sector->sector_name;
91                }
92                else
93                {
94                        $sector_space = '';
95                        for ($i=1; $i < $sector->sector_level; ++$i)
96                                $sector_space = '---'.$sector_space;
97                        $sector->sector_name = $sector_space.' '.$sector->sector_name;
98                }
99       
100                $combo_sector .= '<option value="' . $sector->sector_context . '"';
101
102                if (!$post_select_sector)
103                {
104                        if($sector->sector_name == $user_sector)
105                                $combo_sector .= ' selected';
106                }
107                else
108                {
109                        if($sector->sector_context == $post_select_sector)
110                                $combo_sector .= ' selected';
111                }
112                $combo_sector .= '>' .$sector->sector_name.'</option>'."\n";
113        }                       
114       
115        // Monta lista de Grupos e Usuários
116        $users = Array();
117        $groups = Array();
118
119        $ds = $GLOBALS['phpgw']->common->ldapConnect();
120    if ($ds)
121    {
122                $sr=ldap_list($ds, $user_context, ("(&(cn=*)(phpgwaccounttype=g))"));
123                $info = ldap_get_entries($ds, $sr);
124                for ($i=0; $i<$info["count"]; ++$i)
125                        $groups[$uids=$info[$i]["gidnumber"][0]] = Array('name' =>      $uids=$info[$i]["cn"][0], 'type'        =>      g);
126
127                $sr=ldap_list($ds, $user_context, ("(&(cn=*)(phpgwaccounttype=u)(!(cn=lista*)))"));
128                $info = ldap_get_entries($ds, $sr);
129                for ($i=0; $i<$info["count"]; ++$i)
130                {
131                        if ($info[$i]["phpgwaccountvisible"][0] == '-1')
132                                continue;
133                        $users[$uids=$info[$i]["uidnumber"][0]] = Array('name'  =>      $uids=$info[$i]["cn"][0], 'type'        =>      u);
134                }
135        }
136        ldap_close($ds);
137       
138        @asort($users);
139        @reset($users);
140        @asort($groups);
141        @reset($groups);
142
143        $options ='';
144        if(count($groups))
145                $options .= '<option  value="-1" disabled>--------------------&nbsp;&nbsp;&nbsp;&nbsp;Grupos&nbsp;&nbsp;&nbsp;&nbsp;------------------- </option>'."\n";
146               
147        foreach($groups as $id => $user_array) {
148                        $newId = $id.'U';
149                        $options .= '<option  value="'.$newId.'">'.utf8_decode($user_array['name']).$array_app.'</option>'."\n";
150        }
151       
152        if(count($users))
153                $options .= '<option  value="-1" disabled>-------------------&nbsp;&nbsp;&nbsp;&nbsp;Usuários&nbsp;&nbsp;&nbsp;&nbsp;------------------ </option>'."\n";
154       
155        foreach($users as $id => $user_array) {
156                if($owner != $id){
157                        $newId = $id.'U';
158                        $options .= '<option  value="'.$newId.'">'.utf8_decode($user_array['name']).$array_app.'</option>'."\n";
159                }
160        }
161
162        $t->set_var ('lang_Organization',lang('Organization'));
163        $t->set_var ('lang_Sector',lang('Sector'));
164        $t->set_var ('lang_Calendar',lang('Calendar'));
165        $t->set_var ('lang_Add_Participants',lang('Add Participants'));
166        $t->set_var ('lang_to_Search',lang('to Search'));
167        $t->set_var ('lang_Close',lang('Close'));
168        $t->set_var ('lang_Add',lang('Add'));
169       
170        $t->set_var('options',$options);
171        $t->set_var('combo_organization', $combo_organization);
172        $t->set_var('combo_sector', $combo_sector);
173        $t->parse('out','addUser_t',true);
174        $t->p('out');
175        $GLOBALS['phpgw']->common->phpgw_exit();       
176?>
Note: See TracBrowser for help on using the repository browser.