root/trunk/gui/include/reseller-functions.php

Revision 1390, 45.3 kB (checked in by simple, 1 month ago)

fix according to http://www.isp-control.net/ispcp/ticket/1564
* clear untechnical message
* including the required length
* message according to config-setting (passwd_strong or not)
changed all files with chk_password and error message in it, as well as the language files base and de_DE to add the string

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        $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 /* for mail types */
22 define('MT_NORMAL_MAIL', 'normal_mail');
23 define('MT_NORMAL_FORWARD', 'normal_forward');
24 define('MT_ALIAS_MAIL', 'alias_mail');
25 define('MT_ALIAS_FORWARD', 'alias_forward');
26 define('MT_SUBDOM_MAIL', 'subdom_mail');
27 define('MT_SUBDOM_FORWARD', 'subdom_forward');
28 define('MT_NORMAL_CATCHALL', 'normal_catchall');
29 define('MT_ALIAS_CATCHALL', 'alias_catchall');
30
31 function gen_reseller_mainmenu(&$tpl, $menu_file) {
32         $sql = Database::getInstance();
33
34     $tpl->define_dynamic('menu', $menu_file);
35     $tpl->define_dynamic('isactive_support', 'menu');
36     $tpl->define_dynamic('custom_buttons', 'menu');
37
38     $tpl->assign(
39         array(
40             'TR_MENU_GENERAL_INFORMATION' => tr('General information'),
41             'TR_MENU_CHANGE_PASSWORD' => tr('Change password'),
42             'TR_MENU_CHANGE_PERSONAL_DATA' => tr('Change personal data'),
43             'TR_MENU_HOSTING_PLANS' => tr('Manage hosting plans'),
44             'TR_MENU_ADD_HOSTING' => tr('Add hosting plan'),
45             'TR_MENU_MANAGE_USERS' => tr('Manage users'),
46             'TR_MENU_ADD_USER' => tr('Add user'),
47             'TR_MENU_E_MAIL_SETUP' => tr('Email setup'),
48             'TR_MENU_CIRCULAR' => tr('Email marketing'),
49             'TR_MENU_MANAGE_DOMAINS' => tr('Manage domains'),
50             'TR_MENU_DOMAIN_ALIAS' => tr('Domain alias'),
51             'TR_MENU_SUBDOMAINS' => tr('Subdomains'),
52             'TR_MENU_DOMAIN_STATISTICS' => tr('Domain statistics'),
53             'TR_MENU_QUESTIONS_AND_COMMENTS' => tr('Support system'),
54             'TR_MENU_NEW_TICKET' => tr('New ticket'),
55             'TR_MENU_LAYOUT_SETTINGS' => tr('Layout settings'),
56             'TR_MENU_LOGOUT' => tr('Logout'),
57             'TR_MENU_OVERVIEW' => tr('Overview'),
58             'TR_MENU_LANGUAGE' => tr('Language'),
59             'SUPPORT_SYSTEM_PATH' => Config::get('ISPCP_SUPPORT_SYSTEM_PATH'),
60             'SUPPORT_SYSTEM_TARGET' => Config::get('ISPCP_SUPPORT_SYSTEM_TARGET'),
61             'TR_MENU_ORDERS' => tr('Manage Orders'),
62             'TR_MENU_ORDER_SETTINGS' => tr('Order settings'),
63             'TR_MENU_ORDER_EMAIL' => tr('Order email setup'),
64             'TR_MENU_LOSTPW_EMAIL' => tr('Lostpw email setup'),
65             )
66         );
67
68     $query = <<<SQL_QUERY
69         select
70             *
71         from
72             custom_menus
73         where
74             menu_level = 'reseller'
75           or
76             menu_level = 'all'
77 SQL_QUERY;
78
79     $rs = exec_query($sql, $query, array());
80     if ($rs->RecordCount() == 0) {
81         $tpl->assign('CUSTOM_BUTTONS', '');
82     } else {
83         global $i;
84         $i = 100;
85
86         while (!$rs->EOF) {
87             $menu_name = $rs->fields['menu_name'];
88             $menu_link = get_menu_vars($rs->fields['menu_link']);
89             $menu_target = $rs->fields['menu_target'];
90
91             if ($menu_target !== "") {
92                 $menu_target = "target=\"" . $menu_target . "\"";
93             }
94
95             $tpl->assign(
96                 array('BUTTON_LINK' => $menu_link,
97                     'BUTTON_NAME' => $menu_name,
98                     'BUTTON_TARGET' => $menu_target,
99                     'BUTTON_ID' => $i,
100                     )
101                 );
102
103             $tpl->parse('CUSTOM_BUTTONS', '.custom_buttons');
104             $rs->MoveNext();
105             $i++;
106         } // end while
107     } // end else
108     if (!Config::get('ISPCP_SUPPORT_SYSTEM')) {
109         $tpl->assign('ISACTIVE_SUPPORT', '');
110     }
111
112     $tpl->parse('MAIN_MENU', 'menu');
113 } // End of gen_reseller_menu()
114
115 // Function to generate the manu data for reseller
116 function gen_reseller_menu(&$tpl, $menu_file) {
117     $sql = Database::getInstance();
118
119     $tpl->define_dynamic('menu', $menu_file);
120
121     $tpl->define_dynamic('custom_buttons', 'menu');
122
123     $tpl->assign(
124         array('TR_MENU_GENERAL_INFORMATION' => tr('General information'),
125             'TR_MENU_CHANGE_PASSWORD' => tr('Change password'),
126             'TR_MENU_CHANGE_PERSONAL_DATA' => tr('Change personal data'),
127             'TR_MENU_HOSTING_PLANS' => tr('Manage hosting plans'),
128             'TR_MENU_ADD_HOSTING' => tr('Add hosting plan'),
129             'TR_MENU_MANAGE_USERS' => tr('Manage users'),
130             'TR_MENU_ADD_USER' => tr('Add user'),
131             'TR_MENU_E_MAIL_SETUP' => tr('Email setup'),
132             'TR_MENU_CIRCULAR' => tr('Email marketing'),
133             'TR_MENU_MANAGE_DOMAINS' => tr('Manage domains'),
134             'TR_MENU_DOMAIN_ALIAS' => tr('Domain alias'),
135             'TR_MENU_SUBDOMAINS' => tr('Subdomains'),
136             'TR_MENU_DOMAIN_STATISTICS' => tr('Domain statistics'),
137             'TR_MENU_QUESTIONS_AND_COMMENTS' => tr('Support system'),
138             'TR_MENU_NEW_TICKET' => tr('New ticket'),
139             'TR_MENU_LAYOUT_SETTINGS' => tr('Layout settings'),
140             'TR_MENU_LOGOUT' => tr('Logout'),
141             'TR_MENU_OVERVIEW' => tr('Overview'),
142             'TR_MENU_LANGUAGE' => tr('Language'),
143             'SUPPORT_SYSTEM_PATH' => Config::get('ISPCP_SUPPORT_SYSTEM_PATH'),
144             'SUPPORT_SYSTEM_TARGET' => Config::get('ISPCP_SUPPORT_SYSTEM_TARGET'),
145             'TR_MENU_ORDERS' => tr('Manage Orders'),
146             'TR_MENU_ORDER_SETTINGS' => tr('Order settings'),
147             'TR_MENU_ORDER_EMAIL' => tr('Order email setup'),
148             'TR_MENU_LOSTPW_EMAIL' => tr('Lostpw email setup'),
149             'VERSION' => Config::get('Version'),
150             'BUILDDATE' => Config::get('BuildDate'),
151             'CODENAME' => Config::get('CodeName')
152             )
153         );
154
155     $query = <<<SQL_QUERY
156         select
157             *
158         from
159             custom_menus
160         where
161             menu_level = 'reseller'
162           or
163             menu_level = 'all'
164 SQL_QUERY;
165
166     $rs = exec_query($sql, $query, array());
167     if ($rs->RecordCount() == 0) {
168         $tpl->assign('CUSTOM_BUTTONS', '');
169     } else {
170         global $i;
171         $i = 100;
172
173         while (!$rs->EOF) {
174             $menu_name = $rs->fields['menu_name'];
175             $menu_link = get_menu_vars($rs->fields['menu_link']);
176             $menu_target = $rs->fields['menu_target'];
177
178             if ($menu_target !== "") {
179                 $menu_target = "target=\"" . $menu_target . "\"";
180             }
181
182             $tpl->assign(
183                 array('BUTTON_LINK' => $menu_link,
184                     'BUTTON_NAME' => $menu_name,
185                     'BUTTON_TARGET' => $menu_target,
186                     'BUTTON_ID' => $i,
187                     )
188                 );
189
190             $tpl->parse('CUSTOM_BUTTONS', '.custom_buttons');
191             $rs->MoveNext();
192             $i++;
193         } // end while
194     } // end else
195     if (!Config::get('ISPCP_SUPPORT_SYSTEM')) {
196         $tpl->assign('ISACTIVE_SUPPORT', '');
197     }
198     if (Config::exists('HOSTING_PLANS_LEVEL') && strtolower(Config::get('HOSTING_PLANS_LEVEL')) === 'admin') {
199         $tpl->assign('HP_MENU_ADD', '');
200     }
201
202     $tpl->parse('MENU', 'menu');
203 } // End of gen_reseller_menu()
204
205 // Get data for page of reseller
206 function get_reseller_default_props(&$sql, $reseller_id) {
207     // Make sql query
208     $query = <<<SQL_QUERY
209         select
210             *
211         from
212             reseller_props
213         where
214             reseller_id = ?
215 SQL_QUERY;
216     // send sql query
217     $rs = exec_query($sql, $query, array($reseller_id));
218
219     if (0 == $rs->RowCount()) {
220         return NULL;
221     }
222
223     return array(
224         $rs->fields['current_dmn_cnt'],
225         $rs->fields['max_dmn_cnt'],
226         $rs->fields['current_sub_cnt'],
227         $rs->fields['max_sub_cnt'],
228         $rs->fields['current_als_cnt'],
229         $rs->fields['max_als_cnt'],
230         $rs->fields['current_mail_cnt'],
231         $rs->fields['max_mail_cnt'],
232         $rs->fields['current_ftp_cnt'],
233         $rs->fields['max_ftp_cnt'],
234         $rs->fields['current_sql_db_cnt'],
235         $rs->fields['max_sql_db_cnt'],
236         $rs->fields['current_sql_user_cnt'],
237         $rs->fields['max_sql_user_cnt'],
238         $rs->fields['current_traff_amnt'],
239         $rs->fields['max_traff_amnt'],
240         $rs->fields['current_disk_amnt'],
241         $rs->fields['max_disk_amnt']
242         );
243 } // End of get_reseller_default_props()
244
245 // Makeing user's probs
246 function generate_reseller_user_props ($reseller_id) {
247     $sql = Database::getInstance();
248     // Init with empty variables
249     $rdmn_current = 0;
250     $rdmn_max = 0;
251     $rdmn_uf = '_off_';
252     $rsub_current = 0;
253     $rsub_max = 0;
254     $rsub_uf = '_off_';
255     $rals_current = 0;
256     $rals_max = 0;
257     $rals_uf = '_off_';
258     $rmail_current = 0;
259     $rmail_max = 0;
260     $rmail_uf = '_off_';
261     $rftp_current = 0;
262     $rftp_max = 0;
263     $rftp_uf = '_off_';
264     $rsql_db_current = 0;
265     $rsql_db_max = 0;
266     $rsql_db_uf = '_off_';
267     $rsql_user_current = 0;
268     $rsql_user_max = 0;
269     $rsql_user_uf = '_off_';
270     $rtraff_current = 0;
271     $rtraff_max = 0;
272     $rtraff_uf = '_off_';
273     $rdisk_current = 0;
274     $rdisk_max = 0;
275     $rdisk_uf = '_off_';
276
277     $ResArray = array($rdmn_current, $rdmn_max, $rdmn_uf,
278         $rsub_current, $rsub_max, $rsub_uf,
279         $rals_current, $rals_max, $rals_uf,
280         $rmail_current, $rmail_max, $rmail_uf,
281         $rftp_current, $rftp_max, $rftp_uf,
282         $rsql_db_current, $rsql_db_max, $rsql_db_uf,
283         $rsql_user_current, $rsql_user_max, $rsql_user_uf,
284         $rtraff_current, $rtraff_max, $rtraff_uf,
285         $rdisk_current, $rdisk_max, $rdisk_uf);
286
287     $query = <<<SQL_QUERY
288         select
289             admin_id
290         from
291             admin
292         where
293             created_by = ?
294 SQL_QUERY;
295
296     $res = exec_query($sql, $query, array($reseller_id));
297
298     if ($res->RowCount() == 0) {
299         return array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
300     }
301     // Process all users of this group
302     while ($data = $res->FetchRow()) {
303         $admin_id = $data['admin_id'];
304
305         $query = <<<SQL_QUERY
306               select
307                   domain_id
308               from
309                   domain
310               where
311                   domain_admin_id = ?
312 SQL_QUERY;
313
314         $dres = exec_query($sql, $query, array($admin_id));
315
316         $ddata = $dres->FetchRow();
317
318         $user_id = $ddata['domain_id'];
319
320         list ($sub_current, $sub_max,
321             $als_current, $als_max,
322             $mail_current, $mail_max,
323             $ftp_current, $ftp_max,
324             $sql_db_current, $sql_db_max,
325             $sql_user_current, $sql_user_max,
326             $traff_max, $disk_max
327             ) = get_user_props($user_id);
328
329         list ($tmpval1,
330             $tmpval2,
331             $tmpval3,
332             $tmpval4,
333             $tmpval5,
334             $tmpval16,
335             $traff_current,
336             $disk_current,
337             $tmpval7,
338             $tmpval8
339             ) = generate_user_traffic($user_id);
340
341         $rdmn_current += 1;
342
343         if ($sub_max != -1) {
344             if ($sub_max == 0) $rsub_uf = '_on_';
345
346             $rsub_current += $sub_current;
347             $rsub_max += $sub_max;
348         }
349
350         if ($als_max != -1) {
351             if ($als_max == 0) $rals_uf = '_on_';
352
353             $rals_current += $als_current;
354             $rals_max += $als_max;
355         }
356
357         if ($mail_max != -1) {
358             if ($mail_max == 0) $rmail_uf = '_on_';
359
360             $rmail_current += $mail_current;
361             $rmail_max += $mail_max;
362         }
363
364         if ($ftp_max != -1) {
365             if ($ftp_max == 0) $rftp_uf = '_on_';
366
367             $rftp_current += $ftp_current;
368             $rftp_max += $ftp_max;
369         }
370
371         if ($sql_db_max != -1) {
372             if ($sql_db_max == 0) $rsql_db_uf = '_on_';
373
374             $rsql_db_current += $sql_db_current;
375             $rsql_db_max += $sql_db_max;
376         }
377
378         if ($sql_user_max != -1) {
379             if ($sql_user_max == 0) $rsql_user_uf = '_on_';
380
381             $rsql_user_current += $sql_user_current;
382             $rsql_user_max += $sql_user_max;
383         }
384
385         if ($traff_max == 0) $rtraff_uf = '_on_';
386
387         $rtraff_current += $traff_current;
388         $rtraff_max += $traff_max;
389         // print $rtraff_current."<br>"; //- debug shit
390         if ($disk_max == 0) $rdisk_uf = '_on_';
391
392         $rdisk_current += $disk_current;
393         $rdisk_max += $disk_max;
394         // print $rdisk_current."<br>"; //- debug shit
395     }
396
397     $ResArray = array($rdmn_current, $rdmn_max, $rdmn_uf,
398         $rsub_current, $rsub_max, $rsub_uf,
399         $rals_current, $rals_max, $rals_uf,
400         $rmail_current, $rmail_max, $rmail_uf,
401         $rftp_current, $rftp_max, $rftp_uf,
402         $rsql_db_current, $rsql_db_max, $rsql_db_uf,
403         $rsql_user_current, $rsql_user_max, $rsql_user_uf,
404         $rtraff_current, $rtraff_max, $rtraff_uf,
405         $rdisk_current, $rdisk_max, $rdisk_uf);
406     return $ResArray;
407 } // End of generate_reseller_user_props()
408 // Get traffic information for user
409 function get_user_traffic($user_id)
410 {
411     $sql = Database::getInstance();
412     global $crnt_month, $crnt_year;
413
414     $query = <<<SQL_QUERY
415             select
416                 domain_id,
417                 IFNULL(domain_disk_usage, 0) as domain_disk_usage,
418                 IFNULL(domain_traffic_limit, 0) as domain_traffic_limit,
419                 IFNULL(domain_disk_limit,0) as domain_disk_limit,
420                 domain_name
421             from
422                 domain
423             where
424                 domain_id = ?
425             order by
426                 domain_id
427 SQL_QUERY;
428
429     $res = exec_query($sql, $query, array($user_id));
430
431     if ($res->RowCount() == 0 || $res->RowCount() > 1) {
432         // write_log("TRAFFIC WARNING: >$user_id< manages incorrect number of domains >".$res -> RowCount()."<");
433         return array('n/a', 0, 0, 0, 0, 0, 0, 0, 0, 0);
434     } else {
435         $data = $res->FetchRow();
436
437         $domain_id = $data['domain_id'];
438
439         $domain_disk_usage = $data['domain_disk_usage'];
440
441         $domain_traff_limit = $data['domain_traffic_limit'];
442
443         $domain_disk_limit = $data['domain_disk_limit'];
444
445         $domain_name = $data['domain_name'];
446
447         $query = <<<SQL_QUERY
448           select
449               sum(dtraff_web) as web,
450               sum(dtraff_ftp) as ftp,
451               sum(dtraff_mail) as smtp,
452               sum(dtraff_pop) as pop,
453               sum(dtraff_web) +
454               sum(dtraff_ftp) +
455               sum(dtraff_mail) +
456               sum(dtraff_pop) as total
457           from
458               domain_traffic
459           where
460               domain_id = ?
461 SQL_QUERY;
462
463         $res = exec_query($sql, $query, array($domain_id));
464
465         $data = $res->FetchRow();
466
467         return array($domain_name,
468             $domain_id,
469             $data['web'],
470             $data['ftp'],
471             $data['smtp'],
472             $data['pop'],
473             $data['total'],
474             $domain_disk_usage,
475             $domain_traff_limit,
476             $domain_disk_limit
477             );
478     }
479 } //End of get_user_traffic()
480