source: trunk/expressoAdmin1_2/inc/class.uilogs.inc.php @ 309

Revision 309, 8.0 KB checked in by niltonneto, 16 years ago (diff)

Sincronização com versão publicada em 04/06/2008.

  • 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 uilogs
13        {
14                var $public_functions = array
15                (
16                        'list_logs'     => True,
17                        'view_log'      => True
18                );
19
20                var $functions;
21                var $nextmatchs;
22
23                function uilogs()
24                {
25                        $this->functions = createobject('expressoAdmin1_2.functions');
26                        $this->nextmatchs = createobject('phpgwapi.nextmatchs');
27                }
28
29                function list_logs()
30                {
31                        $account_lid = $GLOBALS['phpgw']->accounts->data['account_lid'];
32                        $tmp = $this->functions->read_acl($account_lid);
33                        $manager_context = $tmp[0]['context'];
34                       
35                        // Verifica se o administrador tem acesso.
36                        if (!$this->functions->check_acl($account_lid,'view_logs'))
37                        {
38                                $GLOBALS['phpgw']->redirect($GLOBALS['phpgw']->link('/expressoAdmin1_2/inc/access_denied.php'));
39                        }
40                                               
41                        unset($GLOBALS['phpgw_info']['flags']['noheader']);
42                        unset($GLOBALS['phpgw_info']['flags']['nonavbar']);
43                        $GLOBALS['phpgw_info']['flags']['app_header'] = $GLOBALS['phpgw_info']['apps']['expressoAdmin1_2']['title'].' - '.lang('Logs');
44                        $GLOBALS['phpgw']->common->phpgw_header();
45
46                        $p = CreateObject('phpgwapi.Template',PHPGW_APP_TPL);
47                        $p->set_file(Array('logs' => 'logs.tpl'));
48                        $p->set_block('logs','list','list');
49                        $p->set_block('logs','row','row');
50                        $p->set_block('logs','row_empty','row_empty');
51
52                        //Administrador realizou uma pesquisa no log
53                        if (($_POST['query_manager_lid'] != '') || ($_POST['query_action'] != '') || ($_POST['query_date'] != '') || ($_POST['query_hour'] != '') || ($_POST['query_other'] != ''))
54                        {
55                                $query = "SELECT manager,date,groupinfo,userinfo,appinfo,msg,action FROM phpgw_expressoadmin_log WHERE";
56                               
57                                if ($_POST['query_manager_lid'] != '')
58                                {
59                                        $query .= " manager LIKE '%".$_POST['query_manager_lid']."%'";
60                                }
61                               
62                                if ($_POST['query_date'] != '')
63                                {
64                                        if ($_POST['query_manager_lid'] != '')
65                                                $query .= " AND";
66                                       
67                                        if ($_POST['query_hour'] != '')
68                                                $query .= " date > TO_TIMESTAMP('".$_POST['query_date'].$_POST['query_hour']."','DD/MM/YYYYHH24:MI') AND date < TO_TIMESTAMP('".$_POST['query_date'].$_POST['query_hour']."','DD/MM/YYYYHH24:MI') + INTERVAL '1 minute'";
69                                        else
70                                                $query .= " date > TO_TIMESTAMP('".$_POST['query_date']."','DD/MM/YYYY') AND date < TO_TIMESTAMP('".$_POST['query_date']."','DD/MM/YYYY') + INTERVAL '1 day'";
71                                }
72                               
73                                if ($_POST['query_action'])
74                                {
75                                        if (($_POST['query_manager_lid'] != '') || ($_POST['query_date'] != ''))
76                                                $query .= " AND";
77                                       
78                                        $query .= " action LIKE '%".$_POST['query_action']."%'";
79                                }
80
81                                if ($_POST['query_other'])
82                                {
83                                        if (($_POST['query_manager_lid'] != '') || ($_POST['query_date'] != '') || ($_POST['query_action'] != ''))
84                                                $query .= " AND";
85                                       
86                                        $query .= " userinfo LIKE '%" . $_POST['query_other'] . "%'";
87                                        $query .= "OR action LIKE '%" . $_POST['query_other'] . "%'";
88                                        $query .= "OR groupinfo LIKE '%" . $_POST['query_other'] . "%'";
89                                        $query .= "OR appinfo LIKE '%" . $_POST['query_other'] . "%'";
90                                        $query .= "OR msg LIKE '%" . $_POST['query_other'] . "%'";
91                                        $query .= "OR manager LIKE '%" . $_POST['query_other'] . "%'";
92                                }
93                               
94                                $query .= " ORDER by manager ASC, date DESC";
95                               
96                                $GLOBALS['phpgw']->db->query($query);
97                                while($GLOBALS['phpgw']->db->next_record())
98                                {
99                                        $logs[] = $GLOBALS['phpgw']->db->row();
100                                }
101                        }
102                       
103                        $var = Array(
104                                'bg_color'                      => $GLOBALS['phpgw_info']['theme']['bg_color'],
105                                'th_bg'                         => $GLOBALS['phpgw_info']['theme']['th_bg'],
106                                'back_url'                      => $GLOBALS['phpgw']->link('/expressoAdmin1_2/index.php'),
107                                'search_action'         => $GLOBALS['phpgw']->link('/index.php','menuaction=expressoAdmin1_2.uilogs.list_logs'),
108                               
109                                'query_manager_lid'     => $_POST['query_manager_lid'],
110                                'query_action'          => $_POST['query_action'],
111                                'query_date'            => $_POST['query_date'],
112                                'query_hour'            => $_POST['query_hour'],
113                                'query_other'           => $_POST['query_other'],
114                               
115                                'lang_manager_lid'      => lang('Manager Login'),
116                                'lang_date'                     => lang('Date'),
117                                'lang_hour'                     => lang('Hour'),
118                                'lang_action'           => lang('Action'),
119                                'lang_view'                     => lang('view'),
120                                'lang_back'                     => lang('back'),
121                                'lang_search'           => lang('search'),
122                                'lang_action'           => lang('Action'),
123                                'lang_other'            => lang('Other')
124                        );
125                        $p->set_var($var);
126                       
127                       
128                        if ((!count($logs)) && (($_POST['query_manager_lid'] != '') || ($_POST['query_date'] != '') || ($_POST['query_hour'] != '')))
129                        {
130                                $p->set_var('message',lang('No matches found'));
131                        }
132                        else if (count($logs))
133                        {
134                                foreach ($logs as $log)
135                                {
136                                        //_debug_array($log);
137                                        $this->nextmatchs->template_alternate_row_color($p);
138
139                                        $var = array(
140                                                'row_manager_lid'       => $log['manager'],
141                                                'row_action'            => $log['action'],
142                                                'row_date'                      => $log['date'],
143                                                //'row_view'  => (!$account['account_lastname']?'&nbsp':$account['account_lastname'])
144                                        );
145                                        $p->set_var($var);
146                                        $p->set_var('row_view',$this->row_action('view','log',$log['date']));
147                                        $p->parse('rows','row',True);
148                                }
149                        }
150                        $p->parse('rows','row_empty',True);
151                        $p->pfp('out','list');
152                }
153               
154                function view_log()
155                {
156                        $account_lid = $GLOBALS['phpgw']->accounts->data['account_lid'];
157                        $tmp = $this->functions->read_acl($account_lid);
158                        $manager_context = $tmp[0]['context'];
159                       
160                        // Verifica se o administrador tem acesso.
161                        if (!$this->functions->check_acl($account_lid,'view_logs'))
162                        {
163                                $GLOBALS['phpgw']->redirect($GLOBALS['phpgw']->link('/expressoAdmin1_2/inc/access_denied.php'));
164                        }
165                                               
166                        unset($GLOBALS['phpgw_info']['flags']['noheader']);
167                        unset($GLOBALS['phpgw_info']['flags']['nonavbar']);
168                        $GLOBALS['phpgw_info']['flags']['app_header'] = $GLOBALS['phpgw_info']['apps']['expressoAdmin1_2']['title'].' - '.lang('View Log');
169                        $GLOBALS['phpgw']->common->phpgw_header();
170
171                        $p = CreateObject('phpgwapi.Template',PHPGW_APP_TPL);                   
172                        $p->set_file(Array('log' => 'log_form.tpl'));
173
174                        $query = "SELECT manager,date,groupinfo,userinfo,appinfo,msg,action FROM phpgw_expressoadmin_log";
175                        $query .= " WHERE date = '".$_GET['date']."'";
176                               
177                        $GLOBALS['phpgw']->db->query($query);
178                        while($GLOBALS['phpgw']->db->next_record())
179                        {
180                                $log[] = $GLOBALS['phpgw']->db->row();
181                        }
182
183                        $tmp = explode(" ", $log[0]['date']);
184                        $tmp_date = explode("-", $tmp[0]);
185                        $date = $tmp_date[2] . '/' . $tmp_date[1] . '/' . $tmp_date[0];
186                       
187                        $tmp_hour = explode(".", $tmp[1]);
188                        $hour = $tmp_hour[0];
189                       
190                        $var = Array(
191                               
192                                'manager_lid'           => $log[0]['manager'],
193                                'date'                          => $date,
194                                'hour'                          => $hour,
195                                'action'                        => $log[0]['action'],
196                                'userinfo'                      => $log[0]['userinfo'],
197                                'groupinfo'                     => $log[0]['groupinfo'],
198                                'appinfo'                       => $log[0]['appinfo'],
199                                'back_url'                      => './index.php?menuaction=expressoAdmin1_2.uilogs.list_logs',
200                               
201                                'color_bg1'                     => "#E8F0F0",
202                                'color_bg2'                     => "#D3DCE3",
203                                'color_font1'           => "#DDDDDD",
204                                'color_font2'           => "#EEEEEE",
205                               
206                                'lang_back'                     => lang('Back'),
207                                'lang_manager_lid'      => lang('Manager Login'),
208                                'lang_date'                     => lang('Date'),
209                                'lang_hour'                     => lang('Hour'),
210                                'lang_action'           => lang('Action'),
211                                'lang_userinfo'         => lang('User Info'),
212                                'lang_groupinfo'        => lang('Group Info'),
213                                'lang_appinfo'          => lang('App Info')                             
214                        );
215                       
216                        $p->set_var($var);
217                        $p->pfp('out','log');
218                }
219               
220                function row_action($action,$type,$date)
221                {
222                        return '<a href="'.$GLOBALS['phpgw']->link('/index.php',Array(
223                                'menuaction' => 'expressoAdmin1_2.uilogs.'.$action.'_'.$type,
224                                'date' => $date
225                        )).'"> '.lang($action).' </a>';
226                }               
227        }               
228?>
Note: See TracBrowser for help on using the repository browser.