コード例 #1
0
/**
 * Generates statistics for the given reseller
 *
 * @param iMSCP_pTemplate $tpl Template engine instance
 * @param int $resellerId Reseller unique identifier
 * @param string $resellerName Reseller name
 * @return void
 */
function _generateResellerStatistics($tpl, $resellerId, $resellerName)
{
    $resellerProps = imscp_getResellerProperties($resellerId, true);
    list($udmn_current, , , $usub_current, , , $uals_current, , , $umail_current, , , $uftp_current, , , $usql_db_current, , , $usql_user_current, , , $utraff_current, , , $udisk_current, ) = generate_reseller_users_props($resellerId);
    $trafficLimitBytes = $resellerProps['max_traff_amnt'] * 1048576;
    $trafficUsageBytes = $resellerProps['current_traff_amnt'] * 1048576;
    $diskspaceLimitBytes = $resellerProps['max_disk_amnt'] * 1048576;
    $diskspaceUsageBytes = $resellerProps['current_disk_amnt'] * 1048576;
    $trafficUsagePercent = make_usage_vals($trafficUsageBytes, $trafficLimitBytes);
    $diskspaceUsagePercent = make_usage_vals($diskspaceUsageBytes, $diskspaceLimitBytes);
    $tpl->assign(array('RESELLER_NAME' => tohtml($resellerName), 'RESELLER_ID' => tohtml($resellerId), 'TRAFFIC_PERCENT' => tohtml($trafficUsagePercent), 'TRAFFIC_MSG' => $trafficLimitBytes ? tohtml(tr('%1$s / %2$s of %3$s', bytesHuman($utraff_current), bytesHuman($trafficUsageBytes), bytesHuman($trafficLimitBytes))) : tohtml(tr('%1$s / %2$s of unlimited', bytesHuman($utraff_current), bytesHuman($trafficUsageBytes))), 'DISK_PERCENT' => tohtml($diskspaceUsagePercent), 'DISK_MSG' => $diskspaceLimitBytes ? tohtml(tr('%1$s / %2$s of %3$s', bytesHuman($udisk_current), bytesHuman($diskspaceUsageBytes), bytesHuman($diskspaceLimitBytes))) : tohtml(tr('%1$s / %2$s of unlimited', bytesHuman($udisk_current), bytesHuman($diskspaceUsageBytes))), 'DMN_MSG' => $resellerProps['max_dmn_cnt'] ? tohtml(tr('%1$d / %2$d of %3$d', $udmn_current, $resellerProps['current_dmn_cnt'], $resellerProps['max_dmn_cnt'])) : tohtml(tr('%1$d / %2$d of unlimited', $udmn_current, $resellerProps['current_dmn_cnt'])), 'SUB_MSG' => $resellerProps['max_sub_cnt'] > 0 ? tohtml(tr('%1$d / %2$d of %3$d', $usub_current, $resellerProps['current_sub_cnt'], $resellerProps['max_sub_cnt'])) : ($resellerProps['max_sub_cnt'] == '-1' ? tohtml(tr('disabled')) : tohtml(tr('%1$d / %2$d of unlimited', $usub_current, $resellerProps['current_sub_cnt']))), 'ALS_MSG' => $resellerProps['max_als_cnt'] > 0 ? tohtml(tr('%1$d / %2$d of %3$d', $uals_current, $resellerProps['current_als_cnt'], $resellerProps['max_als_cnt'])) : ($resellerProps['max_als_cnt'] == '-1' ? tohtml(tr('disabled')) : tohtml(tr('%1$d / %2$d of unlimited', $uals_current, $resellerProps['current_als_cnt']))), 'MAIL_MSG' => $resellerProps['max_mail_cnt'] > 0 ? tohtml(tr('%1$d / %2$d of %3$d', $umail_current, $resellerProps['current_mail_cnt'], $resellerProps['max_mail_cnt'])) : ($resellerProps['max_mail_cnt'] == '-1' ? tohtml(tr('disabled')) : tohtml(tr('%1$d / %2$d of unlimited', $umail_current, $resellerProps['current_mail_cnt']))), 'FTP_MSG' => $resellerProps['max_ftp_cnt'] > 0 ? tohtml(tr('%1$d / %2$d of %3$d', $uftp_current, $resellerProps['current_ftp_cnt'], $resellerProps['max_ftp_cnt'])) : ($resellerProps['max_ftp_cnt'] == '-1' ? tohtml(tr('disabled')) : tohtml(tr('%1$d / %2$d of unlimited', $uftp_current, $resellerProps['current_ftp_cnt']))), 'SQL_DB_MSG' => $resellerProps['max_sql_db_cnt'] > 0 ? tohtml(tr('%1$d / %2$d of %3$d', $usql_db_current, $resellerProps['current_sql_db_cnt'], $resellerProps['max_sql_db_cnt'])) : ($resellerProps['max_sql_db_cnt'] == '-1' ? tohtml(tr('disabled')) : tohtml(tr('%1$d / %2$d of unlimited', $usql_db_current, $resellerProps['current_sql_db_cnt']))), 'SQL_USER_MSG' => $resellerProps['max_sql_user_cnt'] > 0 ? tohtml(tr('%1$d / %2$d of %3$d', $usql_user_current, $resellerProps['current_sql_user_cnt'], $resellerProps['max_sql_user_cnt'])) : ($resellerProps['max_sql_user_cnt'] == '-1' ? tohtml(tr('disabled')) : tohtml(tr('%1$d / %2$d of unlimited', $usql_user_current, $resellerProps['current_sql_user_cnt'])))));
}
コード例 #2
0
function check_reseller_data($reseller_id, $rip_lst, $reseller_ips)
{
    $reseller_max_domain_cnt = $_POST['nreseller_max_domain_cnt'];
    $reseller_max_subdomain_cnt = $_POST['nreseller_max_subdomain_cnt'];
    $reseller_max_alias_cnt = $_POST['nreseller_max_alias_cnt'];
    $reseller_max_mail_cnt = $_POST['nreseller_max_mail_cnt'];
    $reseller_max_ftp_cnt = $_POST['nreseller_max_ftp_cnt'];
    $reseller_max_sql_db_cnt = $_POST['nreseller_max_sql_db_cnt'];
    $reseller_max_sql_user_cnt = $_POST['nreseller_max_sql_user_cnt'];
    $reseller_max_traffic = $_POST['nreseller_max_traffic'];
    $reseller_max_disk = $_POST['nreseller_max_disk'];
    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_users_props($reseller_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) = generate_reseller_props($reseller_id);
    $err = '_off_';
    calculate_new_reseller_vals($reseller_max_domain_cnt, $rdmn_current, $rdmn_max, $udmn_current, $rdmn_current, $udmn_uf, $err, tr('Domain'));
    if ($err == '_off_') {
        calculate_new_reseller_vals($reseller_max_subdomain_cnt, $rsub_current, $rsub_max, $usub_current, $rsub_current, $usub_uf, $err, tr('Subdomain'));
    }
    if ($err == '_off_') {
        calculate_new_reseller_vals($reseller_max_alias_cnt, $rals_current, $rals_max, $uals_current, $uals_max, $uals_uf, $err, tr('Alias'));
    }
    if ($err == '_off_') {
        calculate_new_reseller_vals($reseller_max_mail_cnt, $rmail_current, $rmail_max, $umail_current, $umail_max, $umail_uf, $err, tr('Mail'));
    }
    if ($err == '_off_') {
        calculate_new_reseller_vals($reseller_max_ftp_cnt, $rftp_current, $rftp_max, $uftp_current, $uftp_max, $uftp_uf, $err, tr('FTP'));
    }
    if ($err == '_off_') {
        calculate_new_reseller_vals($reseller_max_sql_db_cnt, $rsql_db_current, $rsql_db_max, $usql_db_current, $usql_db_max, $usql_db_uf, $err, tr('SQL Database'));
    }
    if ($err == '_off_') {
        calculate_new_reseller_vals($reseller_max_sql_user_cnt, $rsql_user_current, $rsql_user_max, $usql_user_current, $usql_user_max, $usql_user_uf, $err, tr('SQL User'));
    }
    if ($err == '_off_') {
        calculate_new_reseller_vals($reseller_max_traffic, $rtraff_current, $rtraff_max, $utraff_current / 1024 / 1024, $utraff_max, $utraff_uf, $err, tr('Traffic'));
    }
    if ($err == '_off_') {
        calculate_new_reseller_vals($reseller_max_disk, $rdisk_current, $rdisk_max, $udisk_current / 1024 / 1024, $udisk_max, $udisk_uf, $err, tr('Disk'));
        //							($data,               $r,           &$rmax,         $u,                         $umax,       $uf,    &$err, $obj)
    }
    if ($err == '_off_') {
        check_user_ip_data($reseller_id, $rip_lst, $reseller_ips, $err);
    }
    if ($err != '_off_') {
        set_page_message($err);
        return false;
    }
    return true;
}
コード例 #3
0
ファイル: reseller_edit.php プロジェクト: svenjantzen/imscp
/**
 * Returns reseller data
 *
 * @param int $resellerId Domain unique identifier
 * @param bool $forUpdate Tell whether or not data are fetched for update
 * @return array Reference to array of data
 */
function &admin_getData($resellerId, $forUpdate = false)
{
    static $data = null;
    if (null !== $data) {
        return $data;
    }
    $stmt = exec_query('
            SELECT t1.*, t2.* FROM admin AS t1 INNER JOIN reseller_props AS t2 ON(t2.reseller_id = t1.admin_id)
            WHERE t1.admin_id = ?
        ', $resellerId);
    if (!$stmt->rowCount()) {
        showBadRequestErrorPage();
    }
    $data = $stmt->fetchRow();
    // Getting total number of consumed items for the given reseller.
    list($data['nbDomains'], , , $data['nbSubdomains'], , $data['unlimitedSubdomains'], $data['nbDomainAliases'], , $data['unlimitedDomainAliases'], $data['nbMailAccounts'], , $data['unlimitedMailAccounts'], $data['nbFtpAccounts'], , $data['unlimitedFtpAccounts'], $data['nbSqlDatabases'], , $data['unlimitedSqlDatabases'], $data['nbSqlUsers'], , $data['unlimitedSqlUsers'], $data['totalTraffic'], , $data['unlimitedTraffic'], $data['totalDiskspace'], , $data['unlimitedDiskspace']) = generate_reseller_users_props($resellerId);
    $data['password'] = '';
    $data['password_confirmation'] = '';
    // Ip data begin
    // Fetch server ip list
    $stmt = exec_query('SELECT ip_id, ip_number FROM server_ips  ORDER BY ip_number');
    if (!$stmt->rowCount()) {
        set_page_message(tr('Unable to get the IP address list. Please fix this problem.'), 'error');
        redirectTo('manage_users.php');
    }
    $data['server_ips'] = $stmt->fetchAll();
    // Convert reseller ip list to array
    $data['reseller_ips'] = explode(';', trim($data['reseller_ips'], ';'));
    // Fetch all ip id used by reseller's customers
    $stmt = exec_query('SELECT DISTINCT domain_ip_id FROM domain INNER JOIN admin ON(admin_id = domain_admin_id) WHERE created_by = ?', $resellerId);
    if ($stmt->rowCount()) {
        $data['used_ips'] = $stmt->fetchAll(PDO::FETCH_COLUMN);
    } else {
        $data['used_ips'] = array();
    }
    $fallbackData = array();
    foreach ($data as $key => $value) {
        $fallbackData["fallback_{$key}"] = $value;
    }
    $data = array_merge($data, $fallbackData);
    $phpini = iMSCP_PHPini::getInstance();
    $data['php_ini_system'] = $phpini->getResellerPermission('phpiniSystem');
    $data['php_ini_al_disable_functions'] = $phpini->getResellerPermission('phpiniDisableFunctions');
    $data['php_ini_al_mail_function'] = $phpini->getResellerPermission('phpiniMailFunction');
    $data['php_ini_al_allow_url_fopen'] = $phpini->getResellerPermission('phpiniAllowUrlFopen');
    $data['php_ini_al_display_errors'] = $phpini->getResellerPermission('phpiniDisplayErrors');
    $data['post_max_size'] = $phpini->getResellerPermission('phpiniPostMaxSize');
    $data['upload_max_filesize'] = $phpini->getResellerPermission('phpiniUploadMaxFileSize');
    $data['max_execution_time'] = $phpini->getResellerPermission('phpiniMaxExecutionTime');
    $data['max_input_time'] = $phpini->getResellerPermission('phpiniMaxInputTime');
    $data['memory_limit'] = $phpini->getResellerPermission('phpiniMemoryLimit');
    if (!$forUpdate) {
        return $data;
    }
    foreach (array('password', 'password_confirmation', 'fname', 'lname', 'gender', 'firm', 'zip', 'city', 'state', 'country', 'email', 'phone', 'fax', 'street1', 'street2', 'max_dmn_cnt', 'max_sub_cnt', 'max_als_cnt', 'max_mail_cnt', 'max_ftp_cnt', 'max_sql_db_cnt', 'max_sql_user_cnt', 'max_traff_amnt', 'max_disk_amnt', 'software_allowed', 'softwaredepot_allowed', 'websoftwaredepot_allowed', 'support_system', 'customer_id') as $key) {
        if (isset($_POST[$key])) {
            $data[$key] = clean_input($_POST[$key]);
        }
    }
    if (isset($_POST['reseller_ips']) && is_array($data['reseller_ips'])) {
        foreach ($_POST['reseller_ips'] as $key => $value) {
            $_POST['reseller_ips'][$key] = clean_input($value);
        }
        $data['reseller_ips'] = $_POST['reseller_ips'];
    } else {
        // We are safe here
        $data['reseller_ips'] = array();
    }
    if (isset($_POST['php_ini_system'])) {
        $data['php_ini_system'] = clean_input($_POST['php_ini_system']);
    }
    if (isset($_POST['php_ini_al_disable_functions'])) {
        $data['php_ini_al_disable_functions'] = clean_input($_POST['php_ini_al_disable_functions']);
    }
    if (isset($_POST['php_ini_al_mail_function'])) {
        $data['php_ini_al_mail_function'] = clean_input($_POST['php_ini_al_mail_function']);
    }
    if (isset($_POST['php_ini_al_allow_url_fopen'])) {
        $data['php_ini_al_allow_url_fopen'] = clean_input($_POST['php_ini_al_allow_url_fopen']);
    }
    if (isset($_POST['php_ini_al_display_errors'])) {
        $data['php_ini_al_display_errors'] = clean_input($_POST['php_ini_al_display_errors']);
    }
    if (isset($_POST['post_max_size'])) {
        $data['post_max_size'] = clean_input($_POST['post_max_size']);
    }
    if (isset($_POST['upload_max_filesize'])) {
        $data['upload_max_filesize'] = clean_input($_POST['upload_max_filesize']);
    }
    if (isset($_POST['max_execution_time'])) {
        $data['max_execution_time'] = clean_input($_POST['max_execution_time']);
    }
    if (isset($_POST['max_input_time'])) {
        $data['max_input_time'] = clean_input($_POST['max_input_time']);
    }
    if (isset($_POST['memory_limit'])) {
        $data['memory_limit'] = clean_input($_POST['memory_limit']);
    }
    return $data;
}
コード例 #4
0
function generate_reseller_entry(&$tpl, $reseller_id, $reseller_name, $row)
{
    global $crnt_month, $crnt_year;
    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) = generate_reseller_props($reseller_id);
    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_users_props($reseller_id);
    $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;
    $traff_percent = calc_bar_value($utraff_current, $rtraff_max, 400);
    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);
    $traff_show_percent = $traff_percent;
    $disk_show_percent = $disk_percent;
    if ($traff_percent > 100) {
        $traff_percent = 100;
    }
    if ($disk_percent > 100) {
        $disk_percent = 100;
    }
    if ($row % 2 == 0) {
        $tpl->assign(array('ITEM_CLASS' => 'content'));
    } else {
        $tpl->assign(array('ITEM_CLASS' => 'content2'));
    }
    $tpl->assign(array('RESELLER_NAME' => $reseller_name, 'RESELLER_ID' => $reseller_id, 'MONTH' => $crnt_month, 'YEAR' => $crnt_year, 'TRAFF_SHOW_PERCENT' => $traff_show_percent, '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_SHOW_PERCENT' => $disk_show_percent, 'DISK_PERCENT' => $disk_percent, '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'), 'TR_OF' => tr('of'), 'SQL_USER_USED' => $usql_user_current, 'SQL_USER_CURRENT' => $rsql_user_current, 'SQL_USER_MAX' => $rsql_user_max ? $rsql_user_max : tr('unlimited')));
    $tpl->parse('RESELLER_ENTRY', '.reseller_entry');
}
コード例 #5
0
ファイル: reseller_edit.php プロジェクト: gOOvER/EasySCP
/**
 * Check reseller data
 *
 * @param array &$errFields  rerefence to the error indicators of input fields
 * @return boolean TRUE if all data are valid, FALSE otherwise
 */
function check_data(&$errFields)
{
    $cfg = EasySCP_Registry::get('Config');
    // Get needed data
    $rdata =& get_data();
    /**
     * Check for new password
     */
    if (!empty($_POST['pass0']) || !empty($_POST['pass1'])) {
        if (!chk_password($_POST['pass0'])) {
            if ($cfg->PASSWD_STRONG) {
                set_page_message(sprintf(tr('The password must be at least %s chars long and contain letters and numbers to be valid.'), $cfg->PASSWD_CHARS), 'warning');
            } else {
                set_page_message(sprintf(tr('Password data is shorter than %s signs or includes not permitted signs!'), $cfg->PASSWD_CHARS), 'warning');
            }
            $errFields[] = 'PWD_ERR';
        }
        if ($_POST['pass0'] != $_POST['pass1']) {
            set_page_message(tr('Entered passwords do not match!'), 'warning');
            $errFields[] = 'PWD_ERR';
            $errFields[] = 'PWDR_ERR';
        }
    }
    /**
     * Check for mail address
     */
    if (!chk_email($rdata['email'])) {
        set_page_message(tr('Incorrect email syntax!'), 'warning');
        $errFields[] = 'EMAIL_ERR';
    }
    list($udmn_current, , $udmn_uf, $usub_current, , $usub_uf, $uals_current, , $uals_uf, $umail_current, , $umail_uf, $uftp_current, , $uftp_uf, $usql_db_current, , $usql_db_uf, $usql_user_current, , $usql_user_uf, $utraff_current, , $utraff_uf, $udisk_current, , $udisk_uf) = generate_reseller_users_props($rdata['edit_id']);
    list($rdmn_current, , $rsub_current, , $rals_current, , $rmail_current, , $rftp_current, , $rsql_db_current, , $rsql_user_current, , $rtraff_current, , $rdisk_current, ) = generate_reseller_props($rdata['edit_id']);
    /**
     * Check for new domains limit
     */
    if (easyscp_limit_check($rdata['max_dmn_cnt'], null)) {
        $rs = _check_new_limit($rdata['max_dmn_cnt'], $rdmn_current, $udmn_current, $udmn_uf, tr('Domains'));
    } else {
        set_page_message(tr('Incorrect domains limit!'), 'warning');
        $rs = false;
    }
    if (!$rs) {
        $errFields[] = 'DMN_ERR';
    }
    /**
     * Check for new subdomains limit
     */
    if (easyscp_limit_check($rdata['max_sub_cnt'])) {
        $rs = _check_new_limit($rdata['max_sub_cnt'], $rsub_current, $usub_current, $usub_uf, tr('Subdomains'));
    } else {
        set_page_message(tr('Incorrect subdomains limit!'), 'warning');
        $rs = false;
    }
    if (!$rs) {
        $errFields[] = 'SUB_ERR';
    }
    /**
     * Check for new domain alias limit
     */
    if (easyscp_limit_check($rdata['max_als_cnt'])) {
        $rs = _check_new_limit($rdata['max_als_cnt'], $rals_current, $uals_current, $uals_uf, tr('Aliases'));
    } else {
        set_page_message(tr('Incorrect aliases limit!'), 'warning');
        $rs = false;
    }
    if (!$rs) {
        $errFields[] = 'ALS_ERR';
    }
    /**
     * Check for new mail accounts limit
     */
    if (easyscp_limit_check($rdata['max_mail_cnt'])) {
        $rs = _check_new_limit($rdata['max_mail_cnt'], $rmail_current, $umail_current, $umail_uf, tr('Mail'));
    } else {
        set_page_message(tr('Incorrect mail accounts limit!'), 'warning');
        $rs = false;
    }
    if (!$rs) {
        $errFields[] = 'MAIL_ERR';
    }
    /**
     * Check for new Ftp accounts limit
     */
    if (easyscp_limit_check($rdata['max_ftp_cnt'])) {
        $rs = _check_new_limit($rdata['max_ftp_cnt'], $rftp_current, $uftp_current, $uftp_uf, tr('FTP'));
    } else {
        set_page_message(tr('Incorrect FTP accounts limit!'), 'warning');
        $rs = false;
    }
    if (!$rs) {
        $errFields[] = 'FTP_ERR';
    }
    /**
     * Check for new Sql databases limit
     */
    if (!($rs = easyscp_limit_check($rdata['max_sql_db_cnt']))) {
        set_page_message(tr('Incorrect SQL databases limit!'), 'warning');
    } else {
        if ($rdata['max_sql_db_cnt'] == -1 && $rdata['max_sql_user_cnt'] != -1) {
            set_page_message(tr('SQL databases limit is <em>disabled</em> but SQL users limit not!'), 'warning');
            $rs = false;
        } else {
            $rs = _check_new_limit($rdata['max_sql_db_cnt'], $rsql_db_current, $usql_db_current, $usql_db_uf, tr('SQL Databases'));
        }
    }
    if (!$rs) {
        $errFields[] = 'SQLD_ERR';
    }
    /**
     * Check for new Sql users limit
     */
    if (!($rs = easyscp_limit_check($rdata['max_sql_user_cnt']))) {
        set_page_message(tr('Incorrect SQL users limit!'), 'warning');
    } else {
        if ($rdata['max_sql_db_cnt'] != -1 && $rdata['max_sql_user_cnt'] == -1) {
            set_page_message(tr('SQL users limit is <em>disabled</em> but SQL databases limit not!'), 'warning');
            $rs = false;
        } else {
            $rs = _check_new_limit($rdata['max_sql_user_cnt'], $rsql_user_current, $usql_user_current, $usql_user_uf, tr('SQL Users'));
        }
    }
    if (!$rs) {
        $errFields[] = 'SQLU_ERR';
    }
    /**
     * Check for new traffic limit
     */
    if (easyscp_limit_check($rdata['max_traff_amnt'], null)) {
        $rs = _check_new_limit($rdata['max_traff_amnt'], $rtraff_current, $utraff_current / 1024 / 1024, $utraff_uf, tr('Web Traffic'));
    } else {
        set_page_message(tr('Incorrect traffic limit!'), 'warning');
        $rs = false;
    }
    if (!$rs) {
        $errFields[] = 'TRF_ERR';
    }
    /**
     * Check for new diskspace limit
     */
    if (easyscp_limit_check($rdata['max_disk_amnt'], null)) {
        $rs = _check_new_limit($rdata['max_disk_amnt'], $rdisk_current, $udisk_current / 1024 / 1024, $udisk_uf, tr('Disk storage'));
    } else {
        set_page_message(tr('Incorrect disk quota limit!'), 'warning');
        $rs = false;
    }
    if (!$rs) {
        $errFields[] = 'DISK_ERR';
    }
    /**
     * Check for IP adresses
     */
    if ($rdata['reseller_ips'] == '') {
        set_page_message(tr('You must assign at least one IP number for a reseller!'), 'warning');
    }
    check_user_ip_data($rdata['edit_id'], $rdata['rip_lst'], $rdata['reseller_ips']);
}
コード例 #6
0
/**
 * @param EasySCP_TemplateEngine $tpl
 * @param int $reseller_id
 * @param string $reseller_name
 * @param int $row
 * @return void
 */
function generate_reseller_entry($tpl, $reseller_id, $reseller_name, $row)
{
    global $crnt_month, $crnt_year;
    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) = generate_reseller_props($reseller_id);
    list($udmn_current, , , $usub_current, , , $uals_current, , , $umail_current, , , $uftp_current, , , $usql_db_current, , , $usql_user_current, , , $utraff_current, , , $udisk_current, , ) = generate_reseller_users_props($reseller_id);
    $rtraff_max = $rtraff_max * 1024 * 1024;
    $rtraff_current = $rtraff_current * 1024 * 1024;
    $rdisk_max = $rdisk_max * 1024 * 1024;
    $rdisk_current = $rdisk_current * 1024 * 1024;
    $traff_show_percent = calc_bar_value($utraff_current, $rtraff_max, 400);
    $disk_show_percent = calc_bar_value($udisk_current, $rdisk_max, 400);
    if ($rtraff_max > 0) {
        $traff_percent = $utraff_current / $rtraff_max * 100 < 99.7 ? $utraff_current / $rtraff_max * 100 : 99.7;
    } else {
        $traff_percent = 0;
    }
    if ($rdisk_max > 0) {
        $disk_percent = $udisk_current / $rdisk_max * 100 < 99.7 ? $udisk_current / $rdisk_max * 100 : 99.7;
    } else {
        $disk_percent = 0;
    }
    $tpl->append(array('RESELLER_NAME' => tohtml($reseller_name), 'RESELLER_ID' => $reseller_id, 'MONTH' => $crnt_month, 'YEAR' => $crnt_year, 'TRAFF_SHOW_PERCENT' => $traff_show_percent, 'TRAFF_PERCENT' => $traff_percent, 'TRAFF_MSG' => $rtraff_max ? tr('%1$s / %2$s <br/>of<br/> <strong>%3$s</strong>', sizeit($utraff_current), sizeit($rtraff_current), sizeit($rtraff_max)) : tr('%1$s / %2$s <br/>of<br/> <strong>unlimited</strong>', sizeit($utraff_current), sizeit($rtraff_current)), 'DISK_SHOW_PERCENT' => $disk_show_percent, 'DISK_PERCENT' => $disk_percent, 'DISK_MSG' => $rdisk_max ? tr('%1$s / %2$s <br/>of<br/> <strong>%3$s</strong>', sizeit($udisk_current), sizeit($rdisk_current), sizeit($rdisk_max)) : tr('%1$s / %2$s <br/>of<br/> <strong>unlimited</strong>', sizeit($udisk_current), sizeit($rdisk_current)), 'DMN_MSG' => $rdmn_max ? tr('%1$d / %2$d <br/>of<br/> <strong>%3$d</strong>', $udmn_current, $rdmn_current, $rdmn_max) : tr('%1$d / %2$d <br/>of<br/> <strong>unlimited</strong>', $udmn_current, $rdmn_current), 'SUB_MSG' => $rsub_max > 0 ? tr('%1$d / %2$d <br/>of<br/> <strong>%3$d</strong>', $usub_current, $rsub_current, $rsub_max) : ($rsub_max === "-1" ? tr('<strong>disabled</strong>') : tr('%1$d / %2$d <br/>of<br/> <strong>unlimited</strong>', $usub_current, $rsub_current)), 'ALS_MSG' => $rals_max > 0 ? tr('%1$d / %2$d <br/>of<br/> <strong>%3$d</strong>', $uals_current, $rals_current, $rals_max) : ($rals_max === "-1" ? tr('<strong>disabled</strong>') : tr('%1$d / %2$d <br/>of<br/> <strong>unlimited</strong>', $uals_current, $rals_current)), 'MAIL_MSG' => $rmail_max > 0 ? tr('%1$d / %2$d <br/>of<br/> <strong>%3$d</strong>', $umail_current, $rmail_current, $rmail_max) : ($rmail_max === "-1" ? tr('<strong>disabled</strong>') : tr('%1$d / %2$d <br/>of<br/> <strong>unlimited</strong>', $umail_current, $rmail_current)), 'FTP_MSG' => $rftp_max > 0 ? tr('%1$d / %2$d <br/>of<br/> <strong>%3$d</strong>', $uftp_current, $rftp_current, $rftp_max) : ($rftp_max === "-1" ? tr('<strong>disabled</strong>') : tr('%1$d / %2$d <br/>of<br/> <strong>unlimited</strong>', $uftp_current, $rftp_current)), 'SQL_DB_MSG' => $rsql_db_max > 0 ? tr('%1$d / %2$d <br/>of<br/> <strong>%3$d</strong>', $usql_db_current, $rsql_db_current, $rsql_db_max) : ($rsql_db_max === "-1" ? tr('<strong>disabled</strong>') : tr('%1$d / %2$d <br/>of<br/> <strong>unlimited</strong>', $usql_db_current, $rsql_db_current)), 'SQL_USER_MSG' => $rsql_user_max > 0 ? tr('%1$d / %2$d <br/>of<br/> <strong>%3$d</strong>', $usql_user_current, $rsql_user_current, $rsql_user_max) : ($rsql_user_max === "-1" ? tr('<strong>disabled</strong>') : tr('%1$d / %2$d <br/>of<br/> <strong>unlimited</strong>', $usql_user_current, $rsql_user_current))));
}