source: trunk/expressoAdmin1_2/inc/class.uimaillists.inc.php @ 6157

Revision 6157, 15.0 KB checked in by alexandrecorreia, 12 years ago (diff)

Ticket #2713 - Corrigido erro ao carregar alguns itens do ExpressoAdmin.

  • Property svn:eol-style set to native
  • Property svn:executable set to *
Line 
1<?php
2        /*************************************************************************************\
3        * Expresso Administração                                                                                                     *
4        * by Joao Alfredo Knopik Junior (joao.alfredo@gmail.com, jakjr@celepar.pr.gov.br)        *
5        * -----------------------------------------------------------------------------------*
6        *  This program is free software; you can redistribute it and/or modify it                       *
7        *  under the terms of the GNU General Public License as published by the                         *
8        *  Free Software Foundation; either version 2 of the License, or (at your                        *
9        *  option) any later version.                                                                                                            *
10        \*************************************************************************************/
11
12        class uimaillists
13        {
14                var $public_functions = array
15                (
16                        'list_maillists'        => True,
17                        'add_maillists'         => True,
18                        'edit_maillists'        => True,
19                        'scl_maillists'         => True,
20                        'css'                           => True
21                );
22
23                var $nextmatchs;
24                var $functions;
25                       
26                function uimaillists()
27                {
28                        $this->maillist         = CreateObject('expressoAdmin1_2.maillist');
29                        $this->functions        = CreateObject('expressoAdmin1_2.functions');
30                        $this->nextmatchs       = CreateObject('phpgwapi.nextmatchs');
31
32                        $c = CreateObject('phpgwapi.config','expressoAdmin1_2');
33                        $c->read_repository();
34                        $this->current_config = $c->config_data;
35
36                        if(!@is_object($GLOBALS['phpgw']->js))
37                        {
38                                $GLOBALS['phpgw']->js = CreateObject('phpgwapi.javascript');
39                        }
40                        $GLOBALS['phpgw']->js->validate_file('jscode','connector','expressoAdmin1_2');#diretorio, arquivo.js, aplicacao
41                        $GLOBALS['phpgw']->js->validate_file('jscode','finder','expressoAdmin1_2');
42                        $GLOBALS['phpgw']->js->validate_file('jscode','expressoadmin','expressoAdmin1_2');
43                        $GLOBALS['phpgw']->js->validate_file('jscode','maillists','expressoAdmin1_2');
44                }
45               
46                function list_maillists()
47                {
48                       
49                        $manager_lid = $GLOBALS['phpgw']->accounts->data['account_lid'];
50                        $manager_acl = $this->functions->read_acl($manager_lid);
51                        $manager_contexts = $manager_acl['contexts'];
52                        foreach ($manager_acl['contexts_display'] as $index=>$tmp_context)
53                        {
54                                $context_display .= '<br>'.$tmp_context;
55                        }
56                       
57                        // Verifica se tem acesso a este modulo
58                        if (!$this->functions->check_acl($manager_lid,'list_maillists'))
59                        {
60                                $GLOBALS['phpgw']->redirect($GLOBALS['phpgw']->link('/expressoAdmin1_2/inc/access_denied.php'));
61                        }
62
63                        if(isset($_POST['query']))
64                        {
65                                // limit query to limit characters
66                                if(preg_match('/^[a-z_0-9_%-].+$/i',$_POST['query']))
67                                        $GLOBALS['query'] = $_POST['query'];
68                        }
69
70                        unset($GLOBALS['phpgw_info']['flags']['noheader']);
71                        unset($GLOBALS['phpgw_info']['flags']['nonavbar']);
72                       
73                        $GLOBALS['phpgw_info']['flags']['app_header'] = $GLOBALS['phpgw_info']['apps']['expressoAdmin1_2']['title'].' - '.lang('Email Lists');
74                        $GLOBALS['phpgw']->common->phpgw_header();
75
76                        $p = CreateObject('phpgwapi.Template',PHPGW_APP_TPL);
77                        $p->set_file(array('maillists'   => 'maillists.tpl'));
78                        $p->set_block('maillists','list','list');
79                        $p->set_block('maillists','row','row');
80                        $p->set_block('maillists','row_empty','row_empty');
81                       
82                        // Seta as variaveis padroes.
83                        $var = Array(
84                                'th_bg'                                         => $GLOBALS['phpgw_info']['theme']['th_bg'],
85                                'back_url'                                      => $GLOBALS['phpgw']->link('/expressoAdmin1_2/index.php'),
86                                'add_action'                            => $GLOBALS['phpgw']->link('/index.php','menuaction=expressoAdmin1_2.uimaillists.add_maillists'),
87                                'add_email_lists_disabled'      => $this->functions->check_acl($manager_lid,'add_maillists') ? '' : 'disabled',
88                                'context_display'                       => $context_display
89                        );
90                        $p->set_var($var);
91                        $p->set_var($this->functions->make_dinamic_lang($p, 'list'));
92                       
93                        // Save query
94                        $p->set_var('query', $GLOBALS['query']);
95                       
96                        //Admin make a search
97                        if ($GLOBALS['query'] != '')
98                        {
99                                $maillists_info = $this->functions->get_list('maillists', $GLOBALS['query'], $manager_contexts);
100                        }
101                        $total = count($maillists_info);
102
103                        if (!count($total) && $GLOBALS['query'] != '')
104                        {
105                                $p->set_var('message',lang('No matches found'));
106                        }
107                        else if ($total)
108                        {
109                                if ($this->functions->check_acl($manager_lid,'edit_maillists'))
110                                {
111                                        $can_edit = True;
112                                }
113                                if ($this->functions->check_acl($manager_lid,'delete_maillists'))
114                                {
115                                        $can_delete = True;
116                                }
117                                if ($this->functions->check_acl($manager_lid,'edit_scl_email_lists'))
118                                {
119                                        $can_edit_scl = True;
120                                }
121
122
123                                foreach($maillists_info as $maillist)
124                                {
125                                        $tr_color = $this->nextmatchs->alternate_row_color($tr_color);
126                                        $var = array(
127                                                'tr_color'              => $tr_color,
128                                                'row_uid'               => $maillist['uid'],
129                                                'row_name'      => $maillist['name'],
130                                                'row_email'     => $maillist['email']
131                                        );
132                                        $p->set_var($var);
133
134                                        if ($can_edit)
135                                        {
136                                                $p->set_var('edit_link',$this->row_action('edit','maillists',$maillist['uidnumber'],$maillist['uid']));
137                                        }
138                                        else
139                                        {
140                                                $p->set_var('edit_link','&nbsp;');
141                                        }
142
143                                        if ( ($can_edit_scl) && ($this->current_config['expressoAdmin_scl']) )
144                                        {
145                                                $p->set_var('scl_link',$this->row_action('scl','maillists',$maillist['uidnumber'],$maillist['uid']));
146                                        }
147                                        else
148                                        {
149                                                $p->set_var('scl_link','&nbsp;');
150                                        }
151
152                                        if ($can_delete)
153                                        {
154                                                $p->set_var('delete_link',"<a href='#' onClick='javascript:delete_maillist(\"".$maillist['uid']."\",\"".$maillist['uidnumber']."\");'>".lang('to delete')."</a>");
155                                        }
156                                        else
157                                                $p->set_var('delete_link','&nbsp;');
158                                       
159                                        $p->fp('rows','row',True);
160                                }
161                        }
162                        $p->parse('rows','row_empty',True);
163                        $p->set_var($var);
164                        $p->pfp('out','list');                 
165                }
166               
167                function add_maillists()
168                {
169                        $manager_lid = $GLOBALS['phpgw']->accounts->data['account_lid'];
170                        $manager_acl = $this->functions->read_acl($manager_lid);
171                        $manager_contexts = $manager_acl['contexts'];
172
173                        // Verifica se tem acesso a este modulo
174                        if (!$this->functions->check_acl($manager_lid,'add_maillists'))
175                        {
176                                $GLOBALS['phpgw']->redirect($GLOBALS['phpgw']->link('/expressoAdmin1_2/inc/access_denied.php'));
177                        }
178
179                        unset($GLOBALS['phpgw_info']['flags']['noheader']);
180                        unset($GLOBALS['phpgw_info']['flags']['nonavbar']);
181                        $GLOBALS['phpgw_info']['flags']['app_header'] = $GLOBALS['phpgw_info']['apps']['expressoAdmin1_2']['title'].' - '.lang('Create Email List');
182                        $GLOBALS['phpgw']->common->phpgw_header();
183                       
184                        // Set o template
185                        $p = CreateObject('phpgwapi.Template',PHPGW_APP_TPL);
186                        $p->set_file(Array('create_maillist' => 'maillists_form.tpl'));
187                        $p->set_block('create_maillist','body','body');
188
189                        // Obtem combos das organizações.
190                        foreach ($manager_contexts as $index=>$context)
191                                $combo_manager_org .= $this->functions->get_organizations($context);
192                        $combo_all_orgs = $this->functions->get_organizations($GLOBALS['phpgw_info']['server']['ldap_context'], '', true, true, true);                 
193                       
194                        // Seta variaveis utilizadas pelo tpl.
195                        $var = Array(
196                                'color_bg1'                                     => "#E8F0F0",
197                                'color_bg2'                                     => "#D3DCE3",
198                                'type'                                          => 'create_maillist',
199                                'ldap_context'                          => $GLOBALS['phpgw_info']['server']['ldap_context'],
200                                'uid'                                           => 'lista-',
201                                'accountStatus_checked'         => 'CHECKED',
202                                'restrictionsOnEmailLists'      => $this->current_config['expressoAdmin_restrictionsOnEmailLists'],
203                                'back_url'                                      => $GLOBALS['phpgw']->link('/index.php','menuaction=expressoAdmin1_2.uimaillists.list_maillists'),
204                                'combo_manager_org'                     => $combo_manager_org,
205                                'combo_all_orgs'                        => $combo_all_orgs,
206                                'defaultDomain'                         => $this->current_config['expressoAdmin_defaultDomain']
207                        );
208                        $p->set_var($var);
209                        $p->set_var($this->functions->make_dinamic_lang($p, 'body'));
210                        $p->pfp('out','create_maillist');
211                }
212               
213                function edit_maillists()
214                {
215                        $manager_lid = $GLOBALS['phpgw']->accounts->data['account_lid'];
216                        $manager_acl = $this->functions->read_acl($manager_lid);
217                        $manager_contexts = $manager_acl['contexts'];
218
219                        // Verifica se tem acesso a este modulo
220                        if (!$this->functions->check_acl($manager_lid,'edit_maillists'))
221                        {
222                                $GLOBALS['phpgw']->redirect($GLOBALS['phpgw']->link('/expressoAdmin1_2/inc/access_denied.php'));
223                        }
224                       
225                        // GET all infomations about the group.
226                        $maillist_info = $this->maillist->get_info($_GET['uidnumber']);
227                       
228                        unset($GLOBALS['phpgw_info']['flags']['noheader']);
229                        unset($GLOBALS['phpgw_info']['flags']['nonavbar']);
230                        $GLOBALS['phpgw_info']['flags']['app_header'] = $GLOBALS['phpgw_info']['apps']['expressoAdmin1_2']['title'].' - '.lang('Edit Email Lists');
231                        $GLOBALS['phpgw']->common->phpgw_header();
232
233                        // Set o template
234                        $p = CreateObject('phpgwapi.Template',PHPGW_APP_TPL);
235                        $p->set_file(Array('edit_maillist' => 'maillists_form.tpl'));
236                        $p->set_block('edit_maillist','body','body');
237
238                        // Obtem combos das organizações.
239                        foreach ($manager_contexts as $index=>$context)
240                                $combo_manager_org .= $this->functions->get_organizations($context, trim(strtolower($maillist_info['context'])));
241                        $combo_all_orgs = $this->functions->get_organizations($GLOBALS['phpgw_info']['server']['ldap_context'], trim(strtolower($maillist_info['context'])), true, true, true);                 
242
243                        // Usuarios da lista.
244                        $user_count = 0;
245                        if (count($maillist_info['mailForwardingAddress_info']) > 0)
246                        {
247                                foreach ($maillist_info['mailForwardingAddress_info'] as $mail=>$userinfo)
248                                {
249                                        $array_users[$mail] = $userinfo['cn'];
250                                        $array_users_uid[$mail] = $userinfo['uid'];
251                                        $array_users_type[$mail] = $userinfo['type'];
252                                }
253                                natcasesort($array_users);
254                                foreach ($array_users as $mail=>$cn)
255                                {
256                                        $user_count++;
257                                        if ($array_users_type[$mail] == 'u')
258                                        {
259                                                $users .= "<option value=" . $mail . ">" . utf8_decode($cn) .  " (" . $array_users_uid[$mail] . ")</option>";
260                                        }
261                                        elseif ($array_users_type[$mail] == 'l')
262                                        {
263                                                $lists .= "<option value=" . $mail . ">" . utf8_decode($cn) .  " (" . $array_users_uid[$mail] . ")</option>";
264                                        }
265                                        else
266                                        {
267                                                $mail_not_found .= "<option value=" . $mail . ">" . utf8_decode($cn) .  " (" . $array_users_uid[$mail] . ")</option>";
268                                        }
269                                }
270                               
271                                if ($mail_not_found != '')
272                                {
273                                        $opt_tmp_mail_not_found = '<option  value="-1" disabled>--------------------&nbsp;&nbsp;&nbsp;&nbsp;'.lang('emails did not find').'&nbsp;&nbsp;&nbsp;&nbsp;------------------ </option>'."\n";
274                                        $ea_select_usersInMaillist .= $opt_tmp_mail_not_found . $mail_not_found;
275                                }
276                                if ($lists != '')
277                                {
278                                        $opt_tmp_lists  = '<option  value="-1" disabled>------------------------------&nbsp;&nbsp;&nbsp;&nbsp;'.lang('email lists').'&nbsp;&nbsp;&nbsp;&nbsp;------------------------------ </option>'."\n";
279                                        $ea_select_usersInMaillist .= $opt_tmp_lists . $lists;
280                                }
281                                $opt_tmp_users  = '<option  value="-1" disabled>-----------------------------&nbsp;&nbsp;&nbsp;&nbsp;'.lang('users').'&nbsp;&nbsp;&nbsp;&nbsp;---------------------------- </option>'."\n";
282                                $ea_select_usersInMaillist .= $opt_tmp_users . $users;
283                        }
284
285                        // Seta variaveis utilizadas pelo tpl.
286                        $var = Array(
287                                'color_bg1'                                             => "#E8F0F0",
288                                'color_bg2'                                             => "#D3DCE3",
289                                'type'                                                  => 'edit_maillist',
290                                'ldap_context'                                  => $GLOBALS['phpgw_info']['server']['ldap_context'],
291                                'back_url'                                              => $GLOBALS['phpgw']->link('/index.php','menuaction=expressoAdmin1_2.uimaillists.list_maillists'),
292                                'combo_manager_org'                             => $combo_manager_org,
293                                'combo_all_orgs'                                => $combo_all_orgs,
294                                'uidnumber'                                             => $_GET['uidnumber'],
295                                'uid'                                                   => $maillist_info['uid'],
296                                'mail'                                                  => $maillist_info['mail'],
297                                'description'                                   => $maillist_info['description'],
298                                'cn'                                                    => $maillist_info['cn'],
299                                'user_count'                                    => $user_count,
300                                'accountStatus_checked'                 => $maillist_info['accountStatus'] == 'active' ? 'CHECKED' : '',
301                                'phpgwAccountVisible_checked'   => $maillist_info['phpgwAccountVisible'] == '-1' ? 'CHECKED' : '',
302                                'ea_select_usersInMaillist'             => $ea_select_usersInMaillist,
303                                'defaultDomain'                                 => $this->current_config['expressoAdmin_defaultDomain']
304                        );
305                        $p->set_var($var);
306                        $p->set_var($this->functions->make_dinamic_lang($p, 'body'));
307                       
308                        $p->pfp('out','edit_maillist');
309                }
310               
311                function scl_maillists()
312                {
313                        $manager_lid = $GLOBALS['phpgw']->accounts->data['account_lid'];
314                        $manager_acl = $this->functions->read_acl($manager_lid);
315                        $manager_contexts = $manager_acl['contexts'];
316                                               
317                        // Verifica se tem acesso a este modulo
318                        if (!$this->functions->check_acl($manager_lid,'edit_maillists'))
319                        {
320                                $GLOBALS['phpgw']->redirect($GLOBALS['phpgw']->link('/expressoAdmin1_2/inc/access_denied.php'));
321                        }
322                       
323                        // GET all infomations about the group.
324                        $maillist_info = $this->maillist->get_scl_info($_GET['uidnumber']);
325                       
326                        unset($GLOBALS['phpgw_info']['flags']['noheader']);
327                        unset($GLOBALS['phpgw_info']['flags']['nonavbar']);
328                        $GLOBALS['phpgw_info']['flags']['app_header'] = $GLOBALS['phpgw_info']['apps']['expressoAdmin1_2']['title'].' - '.lang('Edit Sending Control List');
329                        $GLOBALS['phpgw']->common->phpgw_header();
330
331                        // Set o template
332                        $p = CreateObject('phpgwapi.Template',PHPGW_APP_TPL);
333                        $p->set_file(Array('scl_maillist' => 'maillists_scl.tpl'));
334                        $p->set_block('scl_maillist','body','body');
335
336                        // Pega combo das organizações e seleciona a org da lista.                     
337                        // $org = $this->functions->get_organizations($manager_context, trim(strtolower($maillist_info['context'])));
338                        foreach ($manager_contexts as $index=>$context)
339                                $sectors .= $this->functions->get_organizations($context, trim(strtolower($maillist_info['context'])) );
340
341                        // Usuarios de senders.
342                        if (count($maillist_info['senders_info']) > 0)
343                        {
344                                foreach ($maillist_info['senders_info'] as $mail=>$senderinfo)
345                                {
346                                        $array_senders[$mail] = $senderinfo['cn'];
347                                }
348                                natcasesort($array_senders);
349                                foreach ($array_senders as $mail=>$cn)
350                                {
351                                        $ea_select_users_SCL_Maillist .= "<option value=" . $mail . ">" . $cn . " [" . $mail . "]</option>";
352                                }
353                        }
354
355                        // Seta variaveis utilizadas pelo tpl.
356                        $var = Array(
357                                'color_bg1'                                             => "#E8F0F0",
358                                'color_bg2'                                             => "#D3DCE3",
359                                'type'                                                  => 'edit_maillist',
360                                'ldap_context'                                  => $GLOBALS['phpgw_info']['server']['ldap_context'],
361                                'dn'                                                    => $maillist_info['dn'],
362                                'back_url'                                              => $GLOBALS['phpgw']->link('/index.php','menuaction=expressoAdmin1_2.uimaillists.list_maillists'),
363                                'combo_org'                                             => $sectors,
364                                'uidnumber'                                             => $_GET['uidnumber'],
365                                'uid'                                                   => $maillist_info['uid'],
366                                'mail'                                                  => $maillist_info['mail'],
367                                'cn'                                                    => $maillist_info['cn'],
368                                'accountRestrictive_checked'    => $maillist_info['accountRestrictive'] == 'mailListRestriction' ? 'CHECKED' : '',
369                                'participantCanSendMail_checked'=> $maillist_info['participantCanSendMail'] == 'TRUE' ? 'CHECKED' : '',
370                                'ea_select_users_SCL_Maillist'  => $ea_select_users_SCL_Maillist
371                        );
372                        $p->set_var($var);
373                        $p->set_var($this->functions->make_dinamic_lang($p, 'body'));
374                       
375                        $p->pfp('out','scl_maillist');
376                }
377               
378                function row_action($action,$type,$uidnumber,$maillist_uid)
379                {
380                        return '<a href="'.$GLOBALS['phpgw']->link('/index.php',Array(
381                                'menuaction'            => 'expressoAdmin1_2.uimaillists.'.$action.'_'.$type,
382                                'uidnumber'                     => $uidnumber,
383                                'maillist_uid'          => $maillist_uid
384                        )).'"> '.lang($action).' </a>';
385                }
386               
387                function css()
388                {
389                        $appCSS = '';
390                        return $appCSS;
391                }
392        }
393?>
Note: See TracBrowser for help on using the repository browser.