root/trunk/gui/client/index.php

Revision 1327, 11.8 kB (checked in by rats, 4 months ago)

* Fixed: --scan-knownbad-files and --check-deleted are no longer supported by rkhunter
* Fixed #1471: chkrootkit should be in lenny / hardy
* Updated Chinese (simplified)
* Updated German
* Fixed #1475: typo on installation (ispcp-setup)
* Fixed: default user for rkhunter.log

Line 
1 <?php
2 /**
3  * ispCP ω (OMEGA) a Virtual Hosting Control System
4  *
5  * @copyright     2001-2006 by moleSoftware GmbH
6  * @copyright     2006-2008 by ispCP | http://isp-control.net
7  * @version     SVN: $Id$
8  * @link         http://isp-control.net
9  * @author         ispCP Team
10  *
11  * @license
12  *   This program is free software; you can redistribute it and/or modify it under
13  *   the terms of the MPL General Public License as published by the Free Software
14  *   Foundation; either version 1.1 of the License, or (at your option) any later
15  *   version.
16  *   You should have received a copy of the MPL Mozilla Public License along with
17  *   this program; if not, write to the Open Source Initiative (OSI)
18  *   http://opensource.org | osi@opensource.org
19  */
20
21 require '../include/ispcp-lib.php';
22
23 check_login(__FILE__);
24
25 $tpl = new pTemplate();
26
27 $tpl->define_dynamic('page', Config::get('CLIENT_TEMPLATE_PATH') . '/index.tpl');
28 $tpl->define_dynamic('def_language', 'page');
29 $tpl->define_dynamic('def_layout', 'page');
30 $tpl->define_dynamic('no_messages', 'page');
31 $tpl->define_dynamic('msg_entry', 'page');
32 $tpl->define_dynamic('sql_support', 'page');
33 $tpl->define_dynamic('t_sql1_support', 'page');
34 $tpl->define_dynamic('t_sql2_support', 'page');
35 $tpl->define_dynamic('t_php_support', 'page');
36 $tpl->define_dynamic('t_cgi_support', 'page');
37 $tpl->define_dynamic('t_sdm_support', 'page');
38 $tpl->define_dynamic('t_alias_support', 'page');
39 $tpl->define_dynamic('t_mails_support', 'page');
40 $tpl->define_dynamic('logged_from', 'page');
41 $tpl->define_dynamic('traff_warn', 'page');
42 $tpl->define_dynamic('disk_warn', 'page');
43 $tpl->define_dynamic('dmn_mngmnt', 'page');
44
45
46 function gen_num_limit_msg($num, $limit) {
47     if ($limit == -1) {
48         return tr('disabled');
49     }
50     if ($limit == 0) {
51         return $num . '&nbsp;/&nbsp;' . tr('unlimited');
52     }
53     return $num . '&nbsp;/&nbsp;' . $limit;
54 }
55
56 function gen_system_message(&$tpl, &$sql) {
57     $user_id = $_SESSION['user_id'];
58
59     $query = <<<SQL_QUERY
60         select
61             count(ticket_id) as cnum
62         from
63             tickets
64         where
65             (ticket_to = ? or ticket_from = ?)
66           and
67             (ticket_status = '2')
68           and
69             ticket_reply = 0
70 SQL_QUERY;
71
72     $rs = exec_query($sql, $query, array($user_id, $user_id));
73
74     $num_question = $rs->fields('cnum');
75
76     if ($num_question == 0) {
77         $tpl->assign(array('MSG_ENTRY' => ''));
78     } else {
79         $tpl->assign(
80                 array(
81                     'TR_NEW_MSGS' => tr('You have <b>%d</b> new answer to your support questions', $num_question),
82                     'TR_VIEW' => tr('View')
83                     )
84             );
85
86         $tpl->parse('MSG_ENTRY', 'msg_entry');
87     }
88 }
89
90 function gen_traff_usage(&$tpl, $usage, $max_usage, $bars_max) {
91     list($percent, $bars) = calc_bars($usage, $max_usage, $bars_max);
92     if ($max_usage != 0) {
93         $traffic_usage_data = tr('%1$d%% [%2$s of %3$s]', $percent, sizeit($usage), sizeit($max_usage));
94     } else {
95         $traffic_usage_data = tr('%1$d%% [%2$s of unlimited]', $percent, sizeit($usage));
96     }
97
98     $tpl->assign(
99             array(
100                 'TRAFFIC_USAGE_DATA' => $traffic_usage_data,
101                 'TRAFFIC_BARS' => $bars
102                 )
103             );
104
105     if ($max_usage != 0 && $usage > $max_usage) {
106         $tpl->assign('TR_TRAFFIC_WARNING', tr('You are exceeding your traffic limit!'));
107     } else {
108         $tpl->assign('TRAFF_WARN', '');
109     }
110 }
111
112 function gen_disk_usage(&$tpl, $usage, $max_usage, $bars_max) {
113     list($percent, $bars) = calc_bars($usage, $max_usage, $bars_max);
114
115     if ($max_usage != 0) {
116         $traffic_usage_data = tr('%1$s%% [%2$s of %3$s]', $percent, sizeit($usage), sizeit($max_usage));
117     } else {
118         $traffic_usage_data = tr('%1$s%% [%2$s of unlimited]', $percent, sizeit($usage));
119     }
120
121     $tpl->assign(
122             array(
123                 'DISK_USAGE_DATA' => $traffic_usage_data,
124                 'DISK_BARS' => $bars
125                 )
126             );
127     if ($max_usage != 0 && $usage > $max_usage) {
128         $tpl->assign('TR_DISK_WARNING', tr('You are exceeding your disk limit!'));
129     } else {
130         $tpl->assign('DISK_WARN', '');
131     }
132 }
133
134 function check_user_permissions(&$tpl, $dmn_sqld_limit, $dmn_sqlu_limit, $dmn_php, $dmn_cgi, $dmn_subd_limit, $als_cnt, $dmn_mailacc_limit) {
135     // check if mail accouts available are available for this user
136     if ($dmn_mailacc_limit == -1) {
137         $_SESSION['email_support'] = "no";
138         $tpl->assign('T_MAILS_SUPPORT', '');
139     } else {
140         $tpl->parse('T_MAILS_SUPPORT', '.t_mails_support');
141     }
142     // check if alias are available for this user
143     if ($als_cnt == -1) {
144         $_SESSION['alias_support'] = "no";
145         $tpl->assign('T_ALIAS_SUPPORT', '');
146     } else {
147         $tpl->parse('T_ALIAS_SUPPORT', '.t_alias_support');
148     }
149     // check if subdomains are available for this user
150     if ($dmn_subd_limit == -1) {
151         $_SESSION['subdomain_support'] = "no";
152         $tpl->assign('T_SDM_SUPPORT', '');
153     } else {
154         $tpl->parse('T_SDM_SUPPORT', '.t_sdm_support');
155     }
156     // check if SQL Support is available for this user
157     if ($dmn_sqld_limit == -1 || $dmn_sqlu_limit == -1) {
158         $_SESSION['sql_support'] = "no";
159         $tpl->assign('SQL_SUPPORT', '');
160         $tpl->assign('T_SQL1_SUPPORT', '');
161         $tpl->assign('T_SQL2_SUPPORT', '');
162     } else {
163         $tpl->parse('T_SQL1_SUPPORT', '.t_sql1_support');
164         $tpl->parse('T_SQL2_SUPPORT', '.t_sql2_support');
165     }
166     // check if PHP Support is available for this user
167     if ($dmn_php == 'no') {
168         $tpl->assign('T_PHP_SUPPORT', '');
169     } else {
170         $tpl->assign(
171             array('PHP_SUPPORT' => tr('yes')
172                 )
173             );
174         $tpl->parse('T_PHP_SUPPORT', '.t_php_support');
175     }
176     // check if CGI Support is available for this user
177     if ($dmn_cgi == 'no') {
178         $tpl->assign('T_CGI_SUPPORT', '');
179     } else {
180         $tpl->assign(
181             array('CGI_SUPPORT' => tr('yes')
182                 )
183             );
184         $tpl->parse('T_CGI_SUPPORT', '.t_cgi_support');
185     }
186 }
187 // Calculate the usege traffic/ return array (persent/value)
188 function make_traff_usege($domain_id) {
189     $sql = Database::getInstance();
190
191     $res = exec_query($sql, "select domain_id from domain where domain_admin_id=?", array($domain_id));
192     $dom_id = $res->FetchRow();
193     $domain_id = $dom_id['domain_id'];
194
195     $res = exec_query($sql, "select domain_traffic_limit from domain where domain_id=?", array($domain_id));
196     $dat = $res->FetchRow();
197
198     $fdofmnth = mktime(0, 0, 0, date("m"), 1, date("Y"));
199     $ldofmnth = mktime(1, 0, 0, date("m") + 1, 0, date("Y"));
200     $res = exec_query($sql,
201         "select IFNULL(sum(dtraff_web) + sum(dtraff_ftp) + sum(dtraff_mail) + sum(dtraff_pop),0) " . "as traffic from domain_traffic " . "where domain_id=? and dtraff_time>? and dtraff_time<?",
202         array($domain_id, $fdofmnth, $ldofmnth));
203     $data = $res->FetchRow();
204     $traff = ($data['traffic'] / 1024) / 1024;
205     $mtraff = sprintf("%.2f", $traff);
206     if ($dat['domain_traffic_limit'] == 0) {
207         $pr = 0;
208     } else {
209         $pr = ($traff / $dat['domain_traffic_limit']) * 100;
210         $pr = sprintf("%.2f", $pr);
211     }
212
213     return array($pr, $traff);
214 } // End of make_traff_usege()
215
216 function gen_user_messages_label(&$tpl, &$sql, &$user_id) {
217     $query = <<<SQL_QUERY
218         select
219             count(ticket_id) as cnum
220         from
221             tickets
222         where
223             ticket_from = ?
224           and
225             ticket_status = '2'
226 SQL_QUERY;
227
228     $rs = exec_query($sql, $query, array($user_id));
229     $num_question = $rs->fields('cnum');
230
231     if ($num_question == 0) {
232         $tpl->assign(
233                 array(
234                     'TR_NO_NEW_MESSAGES' => tr('You have no new support questions!'),
235                     'MSG_ENTRY' => ''
236                     )
237                 );
238     } else {
239         $tpl->assign(
240                 array(
241                     'NO_MESSAGES' => '',
242                     'TR_NEW_MSGS' => tr('You have <b>%d</b> new support questions', $num_question),
243                     'TR_VIEW' => tr('View')
244                     )
245                 );
246         $tpl->parse('MSG_ENTRY', '.msg_entry');
247     }
248 }
249
250 /*
251  *
252  * page actions.
253  *
254  */
255
256 $theme_color = Config::get('USER_INITIAL_THEME');
257
258 if (isset($_POST['uaction']) && $_POST['uaction'] === 'save_layout') {
259     $user_id = $_SESSION['user_id'];
260
261     $user_layout = $_POST['def_layout'];
262
263     $query = <<<SQL_QUERY
264         update
265             user_gui_props
266         set
267             layout = ?
268         where
269             user_id = ?
270
271 SQL_QUERY;
272     $rs = exec_query($sql, $query, array($user_layout, $user_id));
273     $theme_color = $user_layout;
274 }
275
276 list($dmn_id,
277     $dmn_name,
278     $dmn_gid,
279     $dmn_uid,
280     $dmn_created_id,
281     $dmn_created,
282     $dmn_last_modified,
283     $dmn_mailacc_limit,
284     $dmn_ftpacc_limit,
285     $dmn_traff_limit,
286     $dmn_sqld_limit,
287     $dmn_sqlu_limit,
288     $dmn_status,
289     $dmn_als_limit,
290     $dmn_subd_limit,
291     $dmn_ip_id,
292     $dmn_disk_limit,
293     $dmn_disk_usage,
294     $dmn_php,
295     $dmn_cgi) = get_domain_default_props($sql, $_SESSION['user_id']);
296
297 list($sub_cnt,
298     $als_cnt,
299     $mail_acc_cnt,
300     $ftp_acc_cnt,
301     $sqld_acc_cnt,
302     $sqlu_acc_cnt) = get_domain_running_props_cnt($sql, $dmn_id);
303
304 $dtraff_pr = 0 ;
305 $dmn_traff_usege = 0;
306 $dmn_traff_limit = $dmn_traff_limit * 1024 * 1024;
307 list($dtraff_pr, $dmn_traff_usege) = make_traff_usege($_SESSION['user_id']);
308
309 $dmn_disk_limit = $dmn_disk_limit * 1024 * 1024;
310
311 gen_traff_usage($tpl, $dmn_traff_usege * 1024 * 1024, $dmn_traff_limit, 400);
312
313 gen_disk_usage($tpl, $dmn_disk_usage, $dmn_disk_limit, 400);
314
315 gen_user_messages_label($tpl, $sql, $_SESSION['user_id']);
316
317 check_user_permissions($tpl, $dmn_sqld_limit, $dmn_sqlu_limit, $dmn_php, $dmn_cgi, $dmn_subd_limit, $dmn_als_limit, $dmn_mailacc_limit);
318
319 $account_name = decode_idna($_SESSION['user_logged']);
320
321 $tpl->assign(
322         array(
323             'ACCOUNT_NAME' => $account_name,
324             'MAIN_DOMAIN' => $dmn_name,
325             'MYSQL_SUPPORT' => ($dmn_sqld_limit != -1 && $dmn_sqlu_limit != -1) ? tr('yes') : tr('no'),
326             'SUBDOMAINS' => gen_num_limit_msg($sub_cnt, $dmn_subd_limit),
327             'DOMAIN_ALIASES' => gen_num_limit_msg($als_cnt, $dmn_als_limit),
328             'MAIL_ACCOUNTS' => gen_num_limit_msg($mail_acc_cnt, $dmn_mailacc_limit),
329             'FTP_ACCOUNTS' => gen_num_limit_msg($ftp_acc_cnt, $dmn_ftpacc_limit),
330             'SQL_DATABASES' => gen_num_limit_msg($sqld_acc_cnt, $dmn_sqld_limit),
331             'SQL_USERS' => gen_num_limit_msg($sqlu_acc_cnt, $dmn_sqlu_limit)
332         )
333     );
334
335 $tpl->assign(
336         array(
337             'TR_CLIENT_MAIN_INDEX_PAGE_TITLE' => tr('ispCP - Client/Main Index'),
338             'THEME_COLOR_PATH' => "../themes/$theme_color",
339             'THEME_CHARSET' => tr('encoding'),
340             'ISP_LOGO' => get_logo($_SESSION['user_id'])
341         )
342     );
343
344 /*
345  *
346  * static page messages.
347  *
348  */
349
350 gen_client_mainmenu($tpl, Config::get('CLIENT_TEMPLATE_PATH') . '/main_menu_general_information.tpl');
351 gen_client_menu($tpl, Config::get('CLIENT_TEMPLATE_PATH') . '/menu_general_information.tpl');
352
353 gen_logged_from($tpl);
354
355 gen_system_message($tpl, $sql);
356
357 check_permissions($tpl);
358
359 $tpl->assign(
360     array(
361         'TR_GENERAL_INFORMATION' => tr('General information'),
362         'TR_ACCOUNT_NAME' => tr('Account name'),
363         'TR_MAIN_DOMAIN' => tr('Main domain'),
364         'TR_PHP_SUPPORT' => tr('PHP support'),
365         'TR_CGI_SUPPORT' => tr('CGI support'),
366         'TR_MYSQL_SUPPORT' => tr('SQL support'),
367         'TR_SUBDOMAINS' => tr('Subdomains'),
368         'TR_DOMAIN_ALIASES' => tr('Domain aliases'),
369         'TR_MAIL_ACCOUNTS' => tr('Mail accounts'),
370         'TR_FTP_ACCOUNTS' => tr('FTP accounts'),
371         'TR_SQL_DATABASES' => tr('SQL databases'),
372         'TR_SQL_USERS' => tr('SQL users'),
373
374         'TR_MESSAGES' => tr('Support system'),
375         'TR_LANGUAGE' => tr('Language'),
376         'TR_CHOOSE_DEFAULT_LANGUAGE' => tr('Choose default language'),
377         'TR_SAVE' => tr('Save'),
378
379         'TR_LAYOUT' => tr('Layout'),
380         'TR_CHOOSE_DEFAULT_LAYOUT' => tr('Choose default layout'),
381
382         'TR_TRAFFIC_USAGE' => tr('Traffic usage'),
383         'TR_DISK_USAGE' => tr('Disk usage')
384         )
385     );
386
387 gen_page_message($tpl);
388
389 $tpl->parse('PAGE', 'page');
390 $tpl->prnt();
391
392 if (Config::get('DUMP_GUI_DEBUG'))
393     dump_gui_debug();
394
395 ?>
Note: See TracBrowser for help on using the browser.