/** * @param EasySCP_TemplateEngine $tpl * @param int $reseller_id * @param string $reseller_name */ function generate_page_data($tpl, $reseller_id, $reseller_name) { global $crnt_month, $crnt_year; $sql = EasySCP_Registry::get('Db'); $crnt_month = date("m"); $crnt_year = date("Y"); // global $tmpArr = get_reseller_default_props($sql, $reseller_id); if ($tmpArr != NULL) { // there are data in db list($rdmn_current, $rdmn_max, $rsub_current, $rsub_max, $rals_current, $rals_max, $rmail_current, $rmail_max, $rftp_current, $rftp_max, $rsql_db_current, $rsql_db_max, $rsql_user_current, $rsql_user_max, $rtraff_current, $rtraff_max, $rdisk_current, $rdisk_max) = $tmpArr; } else { list($rdmn_current, $rdmn_max, $rsub_current, $rsub_max, $rals_current, $rals_max, $rmail_current, $rmail_max, $rftp_current, $rftp_max, $rsql_db_current, $rsql_db_max, $rsql_user_current, $rsql_user_max, $rtraff_current, $rtraff_max, $rdisk_current, $rdisk_max) = array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } list($udmn_current, , , $usub_current, , , $uals_current, , , $umail_current, , , $uftp_current, , , $usql_db_current, , , $usql_user_current, , , $utraff_current, , , $udisk_current) = generate_reseller_user_props($reseller_id); // Convert into MB values $rtraff_max = $rtraff_max * 1024 * 1024; $rtraff_current = $rtraff_current * 1024 * 1024; $rdisk_max = $rdisk_max * 1024 * 1024; $rdisk_current = $rdisk_current * 1024 * 1024; if ($rtraff_max != 0) { $traff_percent = sprintf("%.2f", 100 * $utraff_current / $rtraff_max); } else { $traff_percent = 0; } gen_traff_usage($tpl, $utraff_current, $rtraff_max, 400); gen_disk_usage($tpl, $udisk_current, $rdisk_max, 400); if ($rtraff_max > 0) { if ($utraff_current > $rtraff_max) { $tpl->assign('TR_TRAFFIC_WARNING', tr('You are exceeding your traffic limit!')); } } // warning HDD Usage if ($rdisk_max > 0) { if ($udisk_current > $rdisk_max) { $tpl->assign('TR_DISK_WARNING', tr('You are exceeding your disk limit!')); } } $tpl->assign(array("ACCOUNT_NAME" => tr("Account name"), "GENERAL_INFO" => tr("General information"), "DOMAINS" => tr("User accounts"), "SUBDOMAINS" => tr("Subdomains"), "ALIASES" => tr("Aliases"), "MAIL_ACCOUNTS" => tr("Mail account"), "TR_FTP_ACCOUNTS" => tr("FTP account"), "SQL_DATABASES" => tr("SQL databases"), "SQL_USERS" => tr("SQL users"), "TRAFFIC" => tr("Traffic"), "DISK" => tr("Disk"), "TR_EXTRAS" => tr("Extras"))); $tpl->assign(array('RESELLER_NAME' => tohtml($reseller_name), 'TRAFF_PERCENT' => $traff_percent, 'TRAFF_MSG' => $rtraff_max ? tr('%1$s used / %2$s assigned of <strong>%3$s</strong>', sizeit($utraff_current), sizeit($rtraff_current), sizeit($rtraff_max)) : tr('%1$s used / %2$s assigned of <strong>unlimited</strong>', sizeit($utraff_current), sizeit($rtraff_current)), 'DISK_MSG' => $rdisk_max ? tr('%1$s used / %2$s assigned of <strong>%3$s</strong>', sizeit($udisk_current), sizeit($rdisk_current), sizeit($rdisk_max)) : tr('%1$s used / %2$s assigned of <strong>unlimited</strong>', sizeit($udisk_current), sizeit($rdisk_current)), 'DMN_MSG' => $rdmn_max ? tr('%1$d used / %2$d assigned of <strong>%3$d</strong>', $udmn_current, $rdmn_current, $rdmn_max) : tr('%1$d used / %2$d assigned of <strong>unlimited</strong>', $udmn_current, $rdmn_current), 'SUB_MSG' => $rsub_max > 0 ? tr('%1$d used / %2$d assigned of <strong>%3$d</strong>', $usub_current, $rsub_current, $rsub_max) : ($rsub_max === "-1" ? tr('<strong>disabled</strong>') : tr('%1$d used / %2$d assigned of <strong>unlimited</strong>', $usub_current, $rsub_current)), 'ALS_MSG' => $rals_max > 0 ? tr('%1$d used / %2$d assigned of <strong>%3$d</strong>', $uals_current, $rals_current, $rals_max) : ($rals_max === "-1" ? tr('<strong>disabled</strong>') : tr('%1$d used / %2$d assigned of <strong>unlimited</strong>', $uals_current, $rals_current)), 'MAIL_MSG' => $rmail_max > 0 ? tr('%1$d used / %2$d assigned of <strong>%3$d</strong>', $umail_current, $rmail_current, $rmail_max) : ($rmail_max === "-1" ? tr('<strong>disabled</strong>') : tr('%1$d used / %2$d assigned of <strong>unlimited</strong>', $umail_current, $rmail_current)), 'FTP_MSG' => $rftp_max > 0 ? tr('%1$d used / %2$d assigned of <strong>%3$d</strong>', $uftp_current, $rftp_current, $rftp_max) : ($rftp_max === "-1" ? tr('<strong>disabled</strong>') : tr('%1$d used / %2$d assigned of <strong>unlimited</strong>', $uftp_current, $rftp_current)), 'SQL_DB_MSG' => $rsql_db_max > 0 ? tr('%1$d used / %2$d assigned of <strong>%3$d</strong>', $usql_db_current, $rsql_db_current, $rsql_db_max) : ($rsql_db_max === "-1" ? tr('<strong>disabled</strong>') : tr('%1$d used / %2$d assigned of <strong>unlimited</strong>', $usql_db_current, $rsql_db_current)), 'SQL_USER_MSG' => $rsql_user_max > 0 ? tr('%1$d used / %2$d assigned of <strong>%3$d</strong>', $usql_user_current, $rsql_user_current, $rsql_user_max) : ($rsql_user_max === "-1" ? tr('<strong>disabled</strong>') : tr('%1$d used / %2$d assigned of <strong>unlimited</strong>', $usql_user_current, $rsql_user_current)), 'EXTRAS' => '')); }
function generate_page_data(&$tpl, $reseller_id, $reseller_name) { global $sql, $crnt_month, $crnt_year; $crnt_month = date("m"); $crnt_year = date("Y"); //global $tmpArr = get_reseller_default_props($sql, $reseller_id); //$tmpArr = generate_reseller_props($reseller_id); if (NULL !== $tmpArr) { // there are data in db list($rdmn_current, $rdmn_max, $rsub_current, $rsub_max, $rals_current, $rals_max, $rmail_current, $rmail_max, $rftp_current, $rftp_max, $rsql_db_current, $rsql_db_max, $rsql_user_current, $rsql_user_max, $rtraff_current, $rtraff_max, $rdisk_current, $rdisk_max) = $tmpArr; } else { list($rdmn_current, $rdmn_max, $rsub_current, $rsub_max, $rals_current, $rals_max, $rmail_current, $rmail_max, $rftp_current, $rftp_max, $rsql_db_current, $rsql_db_max, $rsql_user_current, $rsql_user_max, $rtraff_current, $rtraff_max, $rdisk_current, $rdisk_max) = array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } list($udmn_current, $udmn_max, $udmn_uf, $usub_current, $usub_max, $usub_uf, $uals_current, $uals_max, $uals_uf, $umail_current, $umail_max, $umail_uf, $uftp_current, $uftp_max, $uftp_uf, $usql_db_current, $usql_db_max, $usql_db_uf, $usql_user_current, $usql_user_max, $usql_user_uf, $utraff_current, $utraff_max, $utraff_uf, $udisk_current, $udisk_max, $udisk_uf) = generate_reseller_user_props($reseller_id); // Convert into MB values $rtraff_max = $rtraff_max * 1024 * 1024; $rtraff_current = $rtraff_current * 1024 * 1024; $rdisk_max = $rdisk_max * 1024 * 1024; $rdisk_current = $rdisk_current * 1024 * 1024; $utraff_max = $utraff_max * 1024 * 1024; $udisk_max = $udisk_max * 1024 * 1024; list($traff_percent, $traff_red, $traff_green) = make_usage_vals($utraff_current, $rtraff_max); list($disk_percent, $disk_red, $disk_green) = make_usage_vals($udisk_current, $rdisk_max); gen_traff_usage($tpl, $utraff_current, $rtraff_max, 400); gen_disk_usage($tpl, $udisk_current, $rdisk_max, 400); if ($rtraff_max > 0) { if ($utraff_current > $rtraff_max) { $tpl->assign('TR_TRAFFIC_WARNING', tr('You are exceeding your traffic limit!')); } else { $tpl->assign('TRAFF_WARN', ''); } } else { if ($utraff_current > 1024 * 1024 * 1024 * 1024) { $tpl->assign('TR_TRAFFIC_WARNING', tr('You are exceeding your UNLIMITED traffic limit!')); } else { $tpl->assign('TRAFF_WARN', ''); } } //warning HDD Usage if ($rdisk_max > 0) { if ($udisk_current > $rdisk_max) { $tpl->assign('TR_DISK_WARNING', tr('You are exceeding your disk limit!')); } else { $tpl->assign('DISK_WARN', ''); } } else { if ($udisk_current > 1024 * 1024 * 1024 * 1024) { $tpl->assign('TR_DISK_WARNING', tr('You are exceeding your UNLIMITED disk limit!')); } else { $tpl->assign('DISK_WARN', ''); } } $tpl->assign(array('ACCOUNT_NAME' => tr("Account name"), 'GENERAL_INFO' => tr("General information"), "DOMAINS" => tr("User accounts"), "SUBDOMAINS" => tr("Subdomains"), "ALIASES" => tr("Aliases"), "MAIL_ACCOUNTS" => tr("Mail account"), "TR_FTP_ACCOUNTS" => tr("FTP account"), "SQL_DATABASES" => tr("SQL databases"), "SQL_USERS" => tr("SQL users"), "TRAFFIC" => tr("Traffic"), "DISK" => tr("Disk"), "TR_EXTRAS" => tr("Extras"))); $tpl->assign(array('RESELLER_NAME' => $reseller_name, 'TRAFF_RED' => $traff_red * 3, 'TRAFF_GREEN' => $traff_green * 3, 'TRAFF_PERCENT' => $traff_percent, 'TRAFF_USED' => make_hr($utraff_current), 'TRAFF_CURRENT' => make_hr($rtraff_current), 'TRAFF_MAX' => $rtraff_max ? make_hr($rtraff_max) : tr('unlimited'), 'DISK_USED' => make_hr($udisk_current), 'DISK_CURRENT' => make_hr($rdisk_current), 'DISK_MAX' => $rdisk_max ? make_hr($rdisk_max) : tr('unlimited'), 'DMN_USED' => $udmn_current, 'DMN_CURRENT' => $rdmn_current, 'DMN_MAX' => $rdmn_max ? $rdmn_max : tr('unlimited'), 'SUB_USED' => $usub_current, 'SUB_CURRENT' => $rsub_current, 'SUB_MAX' => $rsub_max ? $rsub_max : tr('unlimited'), 'ALS_USED' => $uals_current, 'ALS_CURRENT' => $rals_current, 'ALS_MAX' => $rals_max ? $rals_max : tr('unlimited'), 'MAIL_USED' => $umail_current, 'MAIL_CURRENT' => $rmail_current, 'MAIL_MAX' => $rmail_max ? $rmail_max : tr('unlimited'), 'FTP_USED' => $uftp_current, 'FTP_CURRENT' => $rftp_current, 'FTP_MAX' => $rftp_max ? $rftp_max : tr('unlimited'), 'SQL_DB_USED' => $usql_db_current, 'SQL_DB_CURRENT' => $rsql_db_current, 'SQL_DB_MAX' => $rsql_db_max ? $rsql_db_max : tr('unlimited'), 'SQL_USER_USED' => $usql_user_current, 'SQL_USER_CURRENT' => $rsql_user_current, 'SQL_USER_MAX' => $rsql_user_max ? $rsql_user_max : tr('unlimited'), 'EXTRAS' => '')); }
/** * Check input data * @param int $reseller_id * @param int $user_id */ function check_user_data($reseller_id, $user_id) { $sql = EasySCP_Registry::get('Db'); global $sub, $als, $mail, $ftp, $sql_db, $sql_user, $traff, $disk, $domain_php, $domain_php_edit, $domain_cgi, $domain_ssl, $allowbackup, $domain_dns, $domain_expires, $countbackup; $domain_expires_date = isset($_POST['dmn_expire_date']) ? clean_input($_POST['dmn_expire_date']) : 0; $domain_expires_never = isset($_POST['dmn_expire_never']) ? $_POST['dmn_expire_never'] : "off"; $sub = clean_input($_POST['dom_sub']); $als = clean_input($_POST['dom_alias']); $mail = clean_input($_POST['dom_mail_acCount']); $ftp = clean_input($_POST['dom_ftp_acCounts']); $sql_db = clean_input($_POST['dom_sqldb']); $sql_user = clean_input($_POST['dom_sql_users']); $traff = clean_input($_POST['dom_traffic']); $disk = clean_input($_POST['dom_disk']); // $domain_ip = $_POST['domain_ip']; $domain_php = preg_replace("/\\_/", "", $_POST['domain_php']); $domain_php_edit = preg_replace("/\\_/", "", $_POST['domain_php_edit']); $domain_cgi = preg_replace("/\\_/", "", $_POST['domain_cgi']); $domain_ssl = preg_replace("/\\_/", "", $_POST['domain_ssl']); $domain_dns = preg_replace("/\\_/", "", $_POST['domain_dns']); $allowbackup = preg_replace("/\\_/", "", $_POST['backup']); $countbackup = preg_replace("/\\_/", "", $_POST['countbackup']); $ed_error = ''; list($rsub_max, $rals_max, $rmail_max, $rftp_max, $rsql_db_max, $rsql_user_max) = check_reseller_permissions($_SESSION['user_id'], 'all_permissions'); if ($rsub_max == "-1") { $sub = "-1"; } elseif (!easyscp_limit_check($sub, -1)) { $ed_error .= tr('Incorrect subdomains limit!'); } if ($rals_max == "-1") { $als = "-1"; } elseif (!easyscp_limit_check($als, -1)) { $ed_error .= tr('Incorrect aliases limit!'); } if ($rmail_max == "-1") { $mail = "-1"; } elseif (!easyscp_limit_check($mail, -1)) { $ed_error .= tr('Incorrect mail accounts limit!'); } if ($rftp_max == "-1") { $ftp = "-1"; } elseif (!easyscp_limit_check($ftp, -1)) { $ed_error .= tr('Incorrect FTP accounts limit!'); } if ($rsql_db_max == "-1") { $sql_db = "-1"; } elseif (!easyscp_limit_check($sql_db, -1)) { $ed_error .= tr('Incorrect SQL users limit!'); } else { if ($sql_db == -1 && $sql_user != -1) { $ed_error .= tr('SQL databases limit is <em>disabled</em>!'); } } if ($rsql_user_max == "-1") { $sql_user = "******"; } elseif (!easyscp_limit_check($sql_user, -1)) { $ed_error .= tr('Incorrect SQL databases limit!'); } else { if ($sql_user == -1 && $sql_db != -1) { $ed_error .= tr('SQL users limit is <em>disabled</em>!'); } } if (!easyscp_limit_check($traff, null)) { $ed_error .= tr('Incorrect traffic limit!'); } if (!easyscp_limit_check($disk, null)) { $ed_error .= tr('Incorrect disk quota limit!'); } list($usub_current, $usub_max, $uals_current, $uals_max, $umail_current, $umail_max, $uftp_current, $uftp_max, $usql_db_current, $usql_db_max, $usql_user_current, $usql_user_max, $utraff_max, $udisk_max) = generate_user_props($user_id); $previous_utraff_max = $utraff_max; list($rdmn_current, $rdmn_max, $rsub_current, $rsub_max, $rals_current, $rals_max, $rmail_current, $rmail_max, $rftp_current, $rftp_max, $rsql_db_current, $rsql_db_max, $rsql_user_current, $rsql_user_max, $rtraff_current, $rtraff_max, $rdisk_current, $rdisk_max) = get_reseller_default_props($sql, $reseller_id); list(, , , , , , $utraff_current, $udisk_current) = generate_user_traffic($user_id); if (empty($ed_error)) { calculate_user_dvals($sub, $usub_current, $usub_max, $rsub_current, $rsub_max, $ed_error, tr('Subdomain')); calculate_user_dvals($als, $uals_current, $uals_max, $rals_current, $rals_max, $ed_error, tr('Alias')); calculate_user_dvals($mail, $umail_current, $umail_max, $rmail_current, $rmail_max, $ed_error, tr('Mail')); calculate_user_dvals($ftp, $uftp_current, $uftp_max, $rftp_current, $rftp_max, $ed_error, tr('FTP')); calculate_user_dvals($sql_db, $usql_db_current, $usql_db_max, $rsql_db_current, $rsql_db_max, $ed_error, tr('SQL Database')); } if (empty($ed_error)) { $query = "\n\t\t\tSELECT\n\t\t\t\tCOUNT(distinct su.sqlu_name) AS cnt\n\t\t\tFROM\n\t\t\t\t`sql_user` AS su,\n\t\t\t\t`sql_database` AS sd\n\t\t\tWHERE\n\t\t\t\tsu.`sqld_id` = sd.`sqld_id`\n\t\t\tAND\n\t\t\t\tsd.`domain_id` = ?\n\t\t;"; $rs = exec_query($sql, $query, $_SESSION['edit_id']); calculate_user_dvals($sql_user, $rs->fields['cnt'], $usql_user_max, $rsql_user_current, $rsql_user_max, $ed_error, tr('SQL User')); } if (empty($ed_error)) { calculate_user_dvals($traff, $utraff_current / 1024 / 1024, $utraff_max, $rtraff_current, $rtraff_max, $ed_error, tr('Traffic')); calculate_user_dvals($disk, $udisk_current / 1024 / 1024, $udisk_max, $rdisk_current, $rdisk_max, $ed_error, tr('Disk')); } if (empty($ed_error)) { // Set domains status to 'change' to update mod_cband's limit if ($previous_utraff_max != $utraff_max) { $query = "UPDATE `domain` SET `status` = 'change' WHERE `domain_id` = ?"; exec_query($sql, $query, $user_id); $query = "UPDATE `subdomain` SET `status` = 'change' WHERE `domain_id` = ?"; exec_query($sql, $query, $user_id); send_request('110 DOMAIN domain ' . $user_id); } $user_props = "{$usub_current};{$usub_max};"; $user_props .= "{$uals_current};{$uals_max};"; $user_props .= "{$umail_current};{$umail_max};"; $user_props .= "{$uftp_current};{$uftp_max};"; $user_props .= "{$usql_db_current};{$usql_db_max};"; $user_props .= "{$usql_user_current};{$usql_user_max};"; $user_props .= "{$utraff_max};"; $user_props .= "{$udisk_max};"; // $user_props .= "$domain_ip;"; $user_props .= "{$domain_php};"; $user_props .= "{$domain_php_edit};"; $user_props .= "{$domain_cgi};"; $user_props .= "{$domain_ssl};"; $user_props .= "{$allowbackup};"; $user_props .= "{$domain_dns};"; $user_props .= "{$countbackup}"; update_user_props($user_id, $user_props); $domain_expires = $_SESSION['domain_expires']; // Set domain expire date if ($domain_expires_never != "on") { $domain_expires = strtotime($domain_expires_date); } else { $domain_expires = "0"; } update_expire_date($user_id, $domain_expires); $reseller_props = "{$rdmn_current};{$rdmn_max};"; $reseller_props .= "{$rsub_current};{$rsub_max};"; $reseller_props .= "{$rals_current};{$rals_max};"; $reseller_props .= "{$rmail_current};{$rmail_max};"; $reseller_props .= "{$rftp_current};{$rftp_max};"; $reseller_props .= "{$rsql_db_current};{$rsql_db_max};"; $reseller_props .= "{$rsql_user_current};{$rsql_user_max};"; $reseller_props .= "{$rtraff_current};{$rtraff_max};"; $reseller_props .= "{$rdisk_current};{$rdisk_max}"; if (!update_reseller_props($reseller_id, $reseller_props)) { set_page_message(tr('Domain properties could not be updated!'), 'error'); return false; } // Backup Settings $query = "UPDATE `domain` SET `allowbackup` = ? WHERE `domain_id` = ?"; exec_query($sql, $query, array($allowbackup, $user_id)); // update the sql quotas, too $query = "SELECT `domain_name` FROM `domain` WHERE `domain_id` = ?"; $rs = exec_query($sql, $query, array($user_id)); $temp_dmn_name = $rs->fields['domain_name']; $query = "SELECT COUNT(`name`) AS cnt FROM `quotalimits` WHERE `name` = ?"; $rs = exec_query($sql, $query, $temp_dmn_name); if ($rs->fields['cnt'] > 0) { // we need to update it if ($disk == 0) { $dlim = 0; } else { $dlim = $disk * 1024 * 1024; } $query = "UPDATE `quotalimits` SET `bytes_in_avail` = ? WHERE `name` = ?"; exec_query($sql, $query, array($dlim, $temp_dmn_name)); } set_page_message(tr('Domain properties updated successfully!'), 'success'); return true; } else { set_page_message($ed_error, 'error'); return false; } }
} else { if (!vhcs_limit_check($traff, 1024 * 1024) || $traff == -1) { $ed_error = tr('Incorrect traffic range or syntax!'); } else { if (!vhcs_limit_check($disk, 1024 * 1024) || $disk == -1) { $ed_error = tr('Incorrect disk range or syntax!'); } } } } } } } } list($usub_current, $usub_max, $uals_current, $uals_max, $umail_current, $umail_max, $uftp_current, $uftp_max, $usql_db_current, $usql_db_max, $usql_user_current, $usql_user_max, $utraff_max, $udisk_max) = generate_user_props($dmn_id); list($rdmn_current, $rdmn_max, $rsub_current, $rsub_max, $rals_current, $rals_max, $rmail_current, $rmail_max, $rftp_current, $rftp_max, $rsql_db_current, $rsql_db_max, $rsql_user_current, $rsql_user_max, $rtraff_current, $rtraff_max, $rdisk_current, $rdisk_max) = get_reseller_default_props($sql, $reseller_id); //generate_reseller_props($reseller_id); list($a, $b, $c, $d, $e, $f, $utraff_current, $udisk_current, $i, $h) = generate_user_traffic($dmn_id); if ($ed_error == '_off_') { calculate_user_dvals($sub, $usub_current, $usub_max, $rsub_current, $rsub_max, $ed_error, tr('Subdomain')); } if ($ed_error == '_off_') { calculate_user_dvals($als, $uals_current, $uals_max, $rals_current, $rals_max, $ed_error, tr('Alias')); } if ($ed_error == '_off_') { calculate_user_vals($mail, $umail_current, $umail_max, $rmail_current, $rmail_max, $ed_error, tr('Mail')); } if ($ed_error == '_off_') { calculate_user_vals($ftp, $uftp_current, $uftp_max, $rftp_current, $rftp_max, $ed_error, tr('FTP')); } if ($ed_error == '_off_') {
/** * Generate domain alias list * * @todo Use prepared statements (min. with placeholders like ":search_for") * @param EasySCP_TemplateEngine $tpl * @param int $reseller_id * @param string $als_err */ function generate_als_list($tpl, $reseller_id, &$als_err) { $sql = EasySCP_Registry::get('Db'); $cfg = EasySCP_Registry::get('Config'); list(, , , , , , $uals_current) = generate_reseller_user_props($reseller_id); list(, , , , , $rals_max) = get_reseller_default_props($sql, $reseller_id); if ($uals_current >= $rals_max && $rals_max != "0") { $tpl->assign('ALS_ADD_BUTTON', ''); } $start_index = 0; $rows_per_page = $cfg->DOMAIN_ROWS_PER_PAGE; $current_psi = 0; $_SESSION['search_for'] = ''; $search_common = ''; $search_for = ''; if (isset($_GET['psi'])) { $start_index = $_GET['psi']; $current_psi = $_GET['psi']; } if (isset($_POST['uaction']) && !empty($_POST['uaction'])) { $_SESSION['search_for'] = trim(clean_input($_POST['search_for'])); $_SESSION['search_common'] = $_POST['search_common']; $search_for = $_SESSION['search_for']; $search_common = $_SESSION['search_common']; } else { if (isset($_SESSION['search_for']) && !isset($_GET['psi'])) { unset($_SESSION['search_for']); unset($_SESSION['search_common']); } } $tpl->assign(array('PSI' => $current_psi, 'SEARCH_FOR' => tohtml($search_for), 'TR_SEARCH' => tr('Search'), 'M_ALIAS_NAME' => tr('Alias name'), 'M_ACCOUNT_NAME' => tr('Account name'))); if (isset($_SESSION['search_for']) && $_SESSION['search_for'] != '') { if (isset($search_common) && $search_common == 'alias_name') { $query = "\n\t\t\t\tSELECT\n\t\t\t\t\tt1.*,\n\t\t\t\t\tt2.`domain_id`,\n\t\t\t\t\tt2.`domain_name`,\n\t\t\t\t\tt2.`domain_created_id`\n\t\t\t\tFROM\n\t\t\t\t\t`domain_aliasses` AS t1,\n\t\t\t\t\t`domain` AS t2\n\t\t\t\tWHERE\n\t\t\t\t\t`alias_name` RLIKE '{$search_for}'\n\t\t\t\tAND\n\t\t\t\t\tt2.`domain_created_id` = ?\n\t\t\t\tAND\n\t\t\t\t\tt1.`domain_id` = t2.`domain_id`\n\t\t\t\tORDER BY\n\t\t\t\t\tt1.`alias_name` ASC\n\t\t\t\tLIMIT\n\t\t\t\t\t{$start_index}, {$rows_per_page}\n\t\t\t"; // count query $count_query = "\n\t\t\t\tSELECT\n\t\t\t\t\tCOUNT(`alias_id`) AS cnt\n\t\t\t\tFROM\n\t\t\t\t\t`domain_aliasses` AS t1,\n\t\t\t\t\t`domain` AS t2\n\t\t\t\tWHERE\n\t\t\t\t\tt2.`domain_created_id` = ?\n\t\t\t\tAND\n\t\t\t\t\t`alias_name` RLIKE '{$search_for}'\n\t\t\t\tAND\n\t\t\t\t\tt1.`domain_id` = t2.`domain_id`\n\t\t\t"; } else { $query = "\n\t\t\t\tSELECT\n\t\t\t\t\tt1.*,\n\t\t\t\t\tt2.`domain_id`,\n\t\t\t\t\tt2.`domain_name`,\n\t\t\t\t\tt2.`domain_created_id`\n\t\t\t\tFROM\n\t\t\t\t\t`domain_aliasses` AS t1,\n\t\t\t\t\t`domain` AS t2\n\t\t\t\tWHERE\n\t\t\t\t\tt2.`domain_name` RLIKE '{$search_for}'\n\t\t\t\tAND\n\t\t\t\t\tt1.`domain_id` = t2.`domain_id`\n\t\t\t\tAND\n\t\t\t\t\tt2.`domain_created_id` = ?\n\t\t\t\tORDER BY\n\t\t\t\t\tt1.`alias_name` ASC\n\t\t\t\tLIMIT\n\t\t\t\t\t{$start_index}, {$rows_per_page}\n\t\t\t"; // count query $count_query = "\n\t\t\t\tSELECT\n\t\t\t\t\tCOUNT(`alias_id`) AS cnt\n\t\t\t\tFROM\n\t\t\t\t\t`domain_aliasses` AS t1,\n\t\t\t\t\t`domain` AS t2\n\t\t\t\tWHERE\n\t\t\t\t\tt2.`domain_created_id` = ?\n\t\t\t\tAND\n\t\t\t\t\tt2.`domain_name` RLIKE '{$search_for}'\n\t\t\t\tAND\n\t\t\t\t\tt1.`domain_id` = t2.`domain_id`\n\t\t\t"; } } else { $query = "\n\t\t\tSELECT\n\t\t\t\tt1.*,\n\t\t\t\tt2.`domain_id`,\n\t\t\t\tt2.`domain_name`,\n\t\t\t\tt2.`domain_created_id`\n\t\t\tFROM\n\t\t\t\t`domain_aliasses` AS t1,\n\t\t\t\t`domain` AS t2\n\t\t\tWHERE\n\t\t\t\tt1.`domain_id` = t2.`domain_id`\n\t\t\tAND\n\t\t\t\tt2.`domain_created_id` = ?\n\t\t\tORDER BY\n\t\t\t\tt1.`alias_name` ASC\n\t\t\tLIMIT\n\t\t\t\t{$start_index}, {$rows_per_page}\n\t\t"; // count query $count_query = "\n\t\t\tSELECT\n\t\t\t\tCOUNT(`alias_id`) AS cnt\n\t\t\tFROM\n\t\t\t\t`domain_aliasses` AS t1,\n\t\t\t\t`domain` AS t2\n\t\t\tWHERE\n\t\t\t\tt1.`domain_id` = t2.domain_id\n\t\t\tAND\n\t\t\t\tt2.`domain_created_id` = ?\n\t\t"; } // let's count $rs = exec_query($sql, $count_query, $reseller_id); $records_count = $rs->fields['cnt']; // Get all alias records $rs = exec_query($sql, $query, $reseller_id); if ($records_count == 0) { if (isset($_SESSION['search_for']) && $_SESSION['search_for'] != '') { $tpl->assign(array('TABLE_LIST' => '', 'USERS_LIST' => '', 'SCROLL_PREV' => '', 'SCROLL_NEXT' => '', 'M_DOMAIN_NAME_SELECTED' => '', 'M_ACCOUN_NAME_SELECTED' => '')); } else { $tpl->assign(array('TABLE_LIST' => '', 'TABLE_HEADER' => '', 'USERS_LIST' => '', 'SCROLL_PREV' => '', 'SCROLL_NEXT' => '')); } if (isset($_SESSION['search_for'])) { $als_err = tr('Not found user records matching the search criteria!'); } else { if (isset($_SESSION['almax'])) { if ($_SESSION['almax'] === '_yes_') { $als_err = tr('Domain alias limit reached!'); } else { $als_err = tr('You have no alias records.'); } unset($_SESSION['almax']); } else { $als_err = tr('You have no alias records.'); } } return; } else { $prev_si = $start_index - $rows_per_page; if ($start_index == 0) { $tpl->assign('SCROLL_PREV', ''); } else { $tpl->assign(array('SCROLL_PREV_GRAY' => '', 'PREV_PSI' => $prev_si)); } $next_si = $start_index + $rows_per_page; if ($next_si + 1 > $records_count) { $tpl->assign('SCROLL_NEXT', ''); } else { $tpl->assign(array('SCROLL_NEXT_GRAY' => '', 'NEXT_PSI' => $next_si)); } } if (isset($_SESSION['search_common']) && $_SESSION['search_common'] === 'account_name') { $domain_name_selected = ''; $account_name_selected = $cfg->HTML_SELECTED; } else { $domain_name_selected = $cfg->HTML_SELECTED; $account_name_selected = ''; } $tpl->assign(array('M_DOMAIN_NAME_SELECTED' => $domain_name_selected, 'M_ACCOUN_NAME_SELECTED' => $account_name_selected)); while (!$rs->EOF) { $als_id = $rs->fields['alias_id']; $als_name = $rs->fields['alias_name']; $als_mount_point = $rs->fields['alias_mount'] != '' ? $rs->fields['alias_mount'] : '/'; $als_status = $rs->fields['status']; $als_ip_id = $rs->fields['alias_ip_id']; $als_fwd = $rs->fields['url_forward']; $show_als_fwd = $als_fwd == 'no' ? "-" : $als_fwd; $domain_name = decode_idna($rs->fields['domain_name']); $query = "SELECT `ip_number`, `ip_domain` FROM `server_ips` WHERE `ip_id` = ?"; $alsip_r = exec_query($sql, $query, $als_ip_id); $alsip_d = $alsip_r->fetchRow(); $als_ip = $alsip_d['ip_number']; $als_ip_name = $alsip_d['ip_domain']; if ($als_status === $cfg->ITEM_OK_STATUS) { $delete_link = "alias_delete.php?del_id=" . $als_id; $edit_link = "alias_edit.php?edit_id=" . $als_id; $action_text = tr("Delete"); $edit_text = tr("Edit"); } else { if ($als_status === $cfg->ITEM_ORDERED_STATUS) { $delete_link = "alias_order.php?action=delete&del_id=" . $als_id; $edit_link = "alias_order.php?action=activate&act_id=" . $als_id; $action_text = tr("Delete order"); $edit_text = tr("Activate"); } else { $delete_link = "#"; $edit_link = "#"; $action_text = tr('N/A'); $edit_text = tr('N/A'); } } $als_status = translate_dmn_status($als_status); $als_name = decode_idna($als_name); $show_als_fwd = decode_idna($show_als_fwd); $tpl->append(array('NAME' => tohtml($als_name), 'ALIAS_IP' => tohtml("{$als_ip} ({$als_ip_name})"), 'REAL_DOMAIN' => tohtml($domain_name), 'REAL_DOMAIN_MOUNT' => tohtml($als_mount_point), 'FORWARD' => tohtml($show_als_fwd), 'STATUS' => $als_status, 'ID' => $als_id, 'DELETE' => $action_text, 'DELETE_LINK' => $delete_link, 'EDIT_LINK' => $edit_link, 'EDIT' => $edit_text)); $rs->moveNext(); } }
function check_user_data(&$tpl, &$sql, $reseller_id, $user_id) { global $sub, $als, $mail, $ftp, $sql_db, $sql_user, $traff, $disk, $sql, $domain_ip, $domain_php, $domain_cgi; $sub = $_POST['dom_sub']; $als = $_POST['dom_alias']; $mail = $_POST['dom_mail_acCount']; $ftp = $_POST['dom_ftp_acCounts']; $sql_db = $_POST['dom_sqldb']; $sql_user = $_POST['dom_sql_users']; $traff = $_POST['dom_traffic']; $disk = $_POST['dom_disk']; //$domain_ip = $_POST['domain_ip']; $domain_php = $_POST['domain_php']; $domain_cgi = $_POST['domain_cgi']; $ed_error = '_off_'; if (!vhcs_limit_check($sub, 999)) { $ed_error = tr('Incorrect subdomain range or syntax!'); } else { if (!vhcs_limit_check($als, 999)) { $ed_error = tr('Incorrect alias range or syntax!'); } else { if (!vhcs_limit_check($mail, 999)) { $ed_error = tr('Incorrect mail account range or syntax!'); } else { if (!vhcs_limit_check($ftp, 999) || $ftp == -1) { $ed_error = tr('Incorrect FTP account range or syntax!'); } else { if (!vhcs_limit_check($sql_db, 999)) { $ed_error = tr('Incorrect SQL user range or syntax!'); } else { if (!vhcs_limit_check($sql_user, 999)) { $ed_error = tr('Incorrect SQL database range or syntax!'); } else { if (!vhcs_limit_check($traff, 1024 * 1024) || $traff == -1) { $ed_error = tr('Incorrect traffic range or syntax!'); } else { if (!vhcs_limit_check($disk, 1024 * 1024) || $disk == -1) { $ed_error = tr('Incorrect disk range or syntax!'); } } } } } } } } //$user_props = generate_user_props($user_id); //$reseller_props = generate_reseller_props($reseller_id); list($usub_current, $usub_max, $uals_current, $uals_max, $umail_current, $umail_max, $uftp_current, $uftp_max, $usql_db_current, $usql_db_max, $usql_user_current, $usql_user_max, $utraff_max, $udisk_max) = generate_user_props($user_id); list($rdmn_current, $rdmn_max, $rsub_current, $rsub_max, $rals_current, $rals_max, $rmail_current, $rmail_max, $rftp_current, $rftp_max, $rsql_db_current, $rsql_db_max, $rsql_user_current, $rsql_user_max, $rtraff_current, $rtraff_max, $rdisk_current, $rdisk_max) = get_reseller_default_props($sql, $reseller_id); //generate_reseller_props($reseller_id); list($a, $b, $c, $d, $e, $f, $utraff_current, $udisk_current, $i, $h) = generate_user_traffic($user_id); if ($ed_error == '_off_') { calculate_user_dvals($sub, $usub_current, $usub_max, $rsub_current, $rsub_max, $ed_error, tr('Subdomain')); } if ($ed_error == '_off_') { calculate_user_dvals($als, $uals_current, $uals_max, $rals_current, $rals_max, $ed_error, tr('Alias')); } if ($ed_error == '_off_') { calculate_user_vals($mail, $umail_current, $umail_max, $rmail_current, $rmail_max, $ed_error, tr('Mail')); } if ($ed_error == '_off_') { calculate_user_vals($ftp, $uftp_current, $uftp_max, $rftp_current, $rftp_max, $ed_error, tr('FTP')); } if ($ed_error == '_off_') { calculate_user_dvals($sql_db, $usql_db_current, $usql_db_max, $rsql_db_current, $rsql_db_max, $ed_error, tr('SQL Database')); } if ($ed_error == '_off_') { $query = <<<SQL_QUERY \t\t\tSELECT \t\t\t\tCOUNT(su.sqlu_id) as cnt \t\t\tFROM \t\t\t\tsql_user as su, sql_database as sd \t\t\tWHERE \t\t\t\tsu.sqld_id = sd.sqld_id \t\t\tAND \t\t\t\tsd.domain_id = ? SQL_QUERY; $rs = exec_query($sql, $query, array($_SESSION['user_id'])); calculate_user_dvals($sql_user, $rs->fields['cnt'], $usql_user_max, $rsql_user_current, $rsql_user_max, $ed_error, tr('SQL User')); } if ($ed_error == '_off_') { calculate_user_vals($traff, $utraff_current / 1024 / 1024, $utraff_max, $rtraff_current, $rtraff_max, $ed_error, tr('Traffic')); } if ($ed_error == '_off_') { calculate_user_vals($disk, $udisk_current / 1024 / 1024, $udisk_max, $rdisk_current, $rdisk_max, $ed_error, tr('Disk')); } if ($ed_error == '_off_') { $user_props = "{$usub_current};{$usub_max};"; $user_props .= "{$uals_current};{$uals_max};"; $user_props .= "{$umail_current};{$umail_max};"; $user_props .= "{$uftp_current};{$uftp_max};"; $user_props .= "{$usql_db_current};{$usql_db_max};"; $user_props .= "{$usql_user_current};{$usql_user_max};"; $user_props .= "{$utraff_max};"; $user_props .= "{$udisk_max};"; //$user_props .= "$domain_ip;"; $user_props .= "{$domain_php};"; $user_props .= "{$domain_cgi}"; update_user_props($user_id, $user_props); $reseller_props = "{$rdmn_current};{$rdmn_max};"; $reseller_props .= "{$rsub_current};{$rsub_max};"; $reseller_props .= "{$rals_current};{$rals_max};"; $reseller_props .= "{$rmail_current};{$rmail_max};"; $reseller_props .= "{$rftp_current};{$rftp_max};"; $reseller_props .= "{$rsql_db_current};{$rsql_db_max};"; $reseller_props .= "{$rsql_user_current};{$rsql_user_max};"; $reseller_props .= "{$rtraff_current};{$rtraff_max};"; $reseller_props .= "{$rdisk_current};{$rdisk_max}"; update_reseller_props($reseller_id, $reseller_props); // update the sql quotas too $query = "select domain_name from domain where domain_id=?"; $rs = exec_query($sql, $query, array($user_id)); $temp_dmn_name = $rs->fields['domain_name']; $query = "SELECT count(name) as cnt from quotalimits where name=?"; $rs = exec_query($sql, $query, array($temp_dmn_name)); if ($rs->fields['cnt'] > 0) { // we need to update it if ($disk == 0) { $dlim = 0; } else { $dlim = $disk * 1024 * 1024; } $query = "UPDATE quotalimits SET bytes_in_avail=? WHERE name=?"; $rs = exec_query($sql, $query, array($dlim, $temp_dmn_name)); } set_page_message(tr('Domain properties updated successfully!')); return true; } else { $tpl->assign('MESSAGE', $ed_error); $tpl->parse('PAGE_MESSAGE', 'page_message'); return false; } }
/** * Checks if a reseller has the rights to an option * * @param int $reseller_id unique reseller identifiant * @return boolean option permissions or array with all options */ function check_reseller_permissions($reseller_id, $permission) { $sql = EasySCP_Registry::get('Db'); list(, , , $rsub_max, , $rals_max, , $rmail_max, , $rftp_max, , $rsql_db_max, , $rsql_user_max) = get_reseller_default_props($sql, $reseller_id); if ($permission == "all_permissions") { return array($rsub_max, $rals_max, $rmail_max, $rftp_max, $rsql_db_max, $rsql_user_max); } else { if ($permission == "subdomain" && $rsub_max == "-1") { return false; } elseif ($permission == "alias" && $rals_max == "-1") { return false; } else { if ($permission == "mail" && $rmail_max == "-1") { return false; } else { if ($permission == "ftp" && $rftp_max == "-1") { return false; } else { if ($permission == "sql_db" && $rsql_db_max == "-1") { return false; } else { if ($permission == "sql_user" && $rsql_user_max == "-1") { return false; } } } } } } return true; }
/** * Show data fields * * @global string $alias_name * @global string $forward * @global string $forward_prefix * @global string $mount_point * @param EasySCP_TemplateEngine $tpl * @param int $reseller_id */ function gen_al_page($tpl, $reseller_id) { global $alias_name, $forward, $forward_prefix, $mount_point; $sql = EasySCP_Registry::get('Db'); $cfg = EasySCP_Registry::get('Config'); list(, , , , , , $uals_current) = generate_reseller_user_props($reseller_id); list(, , , , , $rals_max) = get_reseller_default_props($sql, $reseller_id); if ($uals_current >= $rals_max && $rals_max != "0") { $_SESSION['almax'] = '_yes_'; user_goto('alias.php'); } if (isset($_POST['status']) && $_POST['status'] == 1) { $forward_prefix = clean_input($_POST['forward_prefix']); if ($_POST['status'] == 1) { $check_en = $cfg->HTML_CHECKED; $check_dis = ''; $forward = encode_idna(strtolower(clean_input($_POST['forward']))); $tpl->assign(array('READONLY_FORWARD' => '', 'DISABLE_FORWARD' => '')); } else { $check_en = ''; $check_dis = $cfg->HTML_CHECKED; $forward = ''; $tpl->assign(array('READONLY_FORWARD' => $cfg->HTML_READONLY, 'DISABLE_FORWARD' => $cfg->HTML_DISABLED)); } $tpl->assign(array('HTTP_YES' => $forward_prefix === 'http://' ? $cfg->HTML_SELECTED : '', 'HTTPS_YES' => $forward_prefix === 'https://' ? $cfg->HTML_SELECTED : '', 'FTP_YES' => $forward_prefix === 'ftp://' ? $cfg->HTML_SELECTED : '')); } else { $check_en = ''; $check_dis = $cfg->HTML_CHECKED; $forward = ''; $tpl->assign(array('READONLY_FORWARD' => $cfg->HTML_READONLY, 'DISABLE_FORWARD' => $cfg->HTML_DISABLED, 'HTTP_YES' => '', 'HTTPS_YES' => '', 'FTP_YES' => '')); } $tpl->assign(array('DOMAIN' => tohtml(decode_idna($alias_name)), 'MP' => tohtml($mount_point), 'FORWARD' => tohtml(encode_idna($forward)), 'CHECK_EN' => $check_en, 'CHECK_DIS' => $check_dis)); generate_ip_list($tpl, $reseller_id); gen_users_list($tpl, $reseller_id); }