function get_domain_running_sql_acc_cnt(&$sql, $domain_id) { $sqld_acc_cnt = get_domain_running_sqld_acc_cnt($sql, $domain_id); $sqlu_acc_cnt = get_domain_running_sqlu_acc_cnt($sql, $domain_id); return array($sqld_acc_cnt, $sqlu_acc_cnt); }
/** * Generates page * * @param iMSCP_pTemplate $tpl Template instance engine * @param int $domainId Domain unique identifier * @return void */ function reseller_generatePage($tpl, $domainId) { $stmt = exec_query(' SELECT domain_admin_id FROM domain INNER JOIN admin ON(admin_id = domain_admin_id) WHERE domain_id = ? AND created_by = ? ', array($domainId, $_SESSION['user_id'])); if (!$stmt->rowCount()) { showBadRequestErrorPage(); } $domainAdminId = $stmt->fields['domain_admin_id']; $domainProperties = get_domain_default_props($domainAdminId, $_SESSION['user_id']); // Domain IP address info $stmt = exec_query("SELECT ip_number FROM server_ips WHERE ip_id = ?", $domainProperties['domain_ip_id']); if (!$stmt->rowCount()) { $domainIpAddr = tr('Not found.'); } else { $domainIpAddr = $stmt->fields['ip_number']; } $domainStatus = $domainProperties['domain_status']; // Domain status if ($domainStatus == 'ok' || $domainStatus == 'disabled' || $domainStatus == 'todelete' || $domainStatus == 'toadd' || $domainStatus == 'torestore' || $domainStatus == 'tochange' || $domainStatus == 'toenable' || $domainStatus == 'todisable') { $domainStatus = '<span style="color:green">' . tohtml(translate_dmn_status($domainStatus)) . '</span>'; } else { $domainStatus = '<b><font size="3" color="red">' . $domainStatus . "</font></b>"; } // Get total domain traffic usage in bytes $query = "\n SELECT\n IFNULL(SUM(dtraff_web), 0) AS dtraff_web, IFNULL(SUM(dtraff_ftp), 0) AS dtraff_ftp,\n IFNULL(SUM(dtraff_mail), 0) AS dtraff_mail, IFNULL(SUM(dtraff_pop), 0) AS dtraff_pop\n FROM\n domain_traffic\n WHERE\n domain_id = ?\n AND\n dtraff_time BETWEEN ? AND ?\n "; $stmt = exec_query($query, array($domainProperties['domain_id'], getFirstDayOfMonth(), getLastDayOfMonth())); if ($stmt->rowCount()) { $trafficUsageBytes = $stmt->fields['dtraff_web'] + $stmt->fields['dtraff_ftp'] + $stmt->fields['dtraff_mail'] + $stmt->fields['dtraff_pop']; } else { $trafficUsageBytes = 0; } // Get limits in bytes $trafficLimitBytes = $domainProperties['domain_traffic_limit'] * 1048576; $diskspaceLimitBytes = $domainProperties['domain_disk_limit'] * 1048576; // Get usages in percent $trafficUsagePercent = make_usage_vals($trafficUsageBytes, $trafficLimitBytes); $diskspaceUsagePercent = make_usage_vals($domainProperties['domain_disk_usage'], $diskspaceLimitBytes); // Get Email quota info list($quota, $quotaLimit) = reseller_gen_mail_quota_limit_mgs($domainAdminId); # Features $trEnabled = '<span style="color:green">' . tr('Enabled') . '</span>'; $trDisabled = '<span style="color:red">' . tr('Disabled') . '</span>'; $tpl->assign(array('DOMAIN_ID' => $domainId, 'VL_DOMAIN_NAME' => tohtml(decode_idna($domainProperties['domain_name'])), 'VL_DOMAIN_IP' => tohtml($domainIpAddr), 'VL_STATUS' => $domainStatus, 'VL_PHP_SUPP' => $domainProperties['domain_php'] == 'yes' ? $trEnabled : $trDisabled, 'VL_PHP_EDITOR_SUPP' => $domainProperties['phpini_perm_system'] == 'yes' ? $trEnabled : $trDisabled, 'VL_CGI_SUPP' => $domainProperties['domain_cgi'] == 'yes' ? $trEnabled : $trDisabled, 'VL_DNS_SUPP' => $domainProperties['domain_dns'] == 'yes' ? $trEnabled : $trDisabled, 'VL_EXT_MAIL_SUPP' => $domainProperties['domain_external_mail'] == 'yes' ? $trEnabled : $trDisabled, 'VL_SOFTWARE_SUPP' => $domainProperties['domain_software_allowed'] == 'yes' ? $trEnabled : $trDisabled, 'VL_BACKUP_SUP' => translate_limit_value($domainProperties['allowbackup']), 'VL_TRAFFIC_PERCENT' => $trafficUsagePercent, 'VL_TRAFFIC_USED' => bytesHuman($trafficUsageBytes), 'VL_TRAFFIC_LIMIT' => bytesHuman($trafficLimitBytes), 'VL_DISK_PERCENT' => $diskspaceUsagePercent, 'VL_DISK_USED' => bytesHuman($domainProperties['domain_disk_usage']), 'VL_DISK_LIMIT' => bytesHuman($diskspaceLimitBytes), 'VL_MAIL_ACCOUNTS_USED' => get_domain_running_mail_acc_cnt($domainId), 'VL_MAIL_ACCOUNTS_LIMIT' => translate_limit_value($domainProperties['domain_mailacc_limit']), 'VL_MAIL_QUOTA_USED' => $quota, 'VL_MAIL_QUOTA_LIMIT' => $domainProperties['domain_mailacc_limit'] != '-1' ? $quotaLimit : tr('Disabled'), 'VL_FTP_ACCOUNTS_USED' => get_customer_running_ftp_acc_cnt($domainAdminId), 'VL_FTP_ACCOUNTS_LIMIT' => translate_limit_value($domainProperties['domain_ftpacc_limit']), 'VL_SQL_DB_ACCOUNTS_USED' => get_domain_running_sqld_acc_cnt($domainId), 'VL_SQL_DB_ACCOUNTS_LIMIT' => translate_limit_value($domainProperties['domain_sqld_limit']), 'VL_SQL_USER_ACCOUNTS_USED' => get_domain_running_sqlu_acc_cnt($domainId), 'VL_SQL_USER_ACCOUNTS_LIMIT' => translate_limit_value($domainProperties['domain_sqlu_limit']), 'VL_SUBDOM_ACCOUNTS_USED' => get_domain_running_sub_cnt($domainId), 'VL_SUBDOM_ACCOUNTS_LIMIT' => translate_limit_value($domainProperties['domain_subd_limit']), 'VL_DOMALIAS_ACCOUNTS_USED' => get_domain_running_als_cnt($domainId), 'VL_DOMALIAS_ACCOUNTS_LIMIT' => translate_limit_value($domainProperties['domain_alias_limit']))); }
/** * Returns both total number of database and SQL user that belong to a specific domain * * @param int $domainId Domain unique identifier * @return array An array where the first item is the Database total number, and the second the SQL users total number. */ function get_domain_running_sql_acc_cnt($domainId) { return array(get_domain_running_sqld_acc_cnt($domainId), get_domain_running_sqlu_acc_cnt($domainId)); }
/** * Returns user's properties from database. * * @param int $adminId Customer unique identifier * @return array An array that contain user's properties */ function get_user_props($adminId) { /** @var $cfg iMSCP_Config_Handler_File */ $cfg = iMSCP_Registry::get('config'); $stmt = exec_query('SELECT * FROM domain WHERE domain_id = ?', $adminId); if (!$stmt->rowCount()) { return array_fill(0, 14, 0); } $data = $stmt->fetchRow(); $sub_current = get_domain_running_sub_cnt($adminId); $sub_max = $data['domain_subd_limit']; $als_current = records_count('domain_aliasses', 'domain_id', $adminId); $als_max = $data['domain_alias_limit']; if ($cfg['COUNT_DEFAULT_EMAIL_ADDRESSES']) { // Catch all is not a mailbox and haven't to be count $mail_current = records_count('mail_users', 'mail_type NOT RLIKE \'_catchall\' AND domain_id', $adminId); } else { $where = "\n\t\t\t\tmail_acc != 'abuse'\n\t\t\tAND\n\t\t\t\tmail_acc != 'postmaster'\n\t\t\tAND\n\t\t\t\tmail_acc != 'webmaster'\n\t\t\tAND\n\t\t\t\tmail_type NOT RLIKE '_catchall'\n\t\t\tAND\n\t\t\t\tdomain_id\n\t\t"; $mail_current = records_count('mail_users', $where, $adminId); } $mail_max = $data['domain_mailacc_limit']; $ftp_current = sub_records_rlike_count('domain_name', 'domain', 'domain_id', $adminId, 'userid', 'ftp_users', 'userid', '@', ''); $ftp_current += sub_records_rlike_count('alias_name', 'domain_aliasses', 'domain_id', $adminId, 'userid', 'ftp_users', 'userid', '@', ''); $ftp_max = $data['domain_ftpacc_limit']; $sql_db_current = records_count('sql_database', 'domain_id', $adminId); $sql_db_max = $data['domain_sqld_limit']; $sql_user_current = get_domain_running_sqlu_acc_cnt($adminId); $sql_user_max = $data['domain_sqlu_limit']; $traff_max = $data['domain_traffic_limit']; $disk_max = $data['domain_disk_limit']; return array($sub_current, $sub_max, $als_current, $als_max, $mail_current, $mail_max, $ftp_current, $ftp_max, $sql_db_current, $sql_db_max, $sql_user_current, $sql_user_max, $traff_max, $disk_max); }
/** * Get user's properties from Database * * @param int $user_id user's ID * @return Array user's properies */ function get_user_props($user_id) { $cfg = EasySCP_Registry::get('Config'); $sql = EasySCP_Registry::get('Db'); $query = "\n\t\tSELECT\n\t\t\t*\n\t\tFROM\n\t\t\t`domain`\n\t\tWHERE\n\t\t\t`domain_id` = ?\n\t"; $res = exec_query($sql, $query, $user_id); if ($res->rowCount() == 0) { return array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } $data = $res->fetchRow(); $sub_current = get_domain_running_sub_cnt($sql, $user_id); $sub_max = $data['domain_subd_limit']; $als_current = records_count('domain_aliasses', 'domain_id', $user_id); $als_max = $data['domain_alias_limit']; $mail_current = records_count('mail_users', 'mail_type NOT RLIKE \'_catchall\' AND domain_id', $user_id); $mail_max = $data['domain_mailacc_limit']; $ftp_current = sub_records_rlike_count('domain_name', 'domain', 'domain_id', $user_id, 'userid', 'ftp_users', 'userid', '@', ''); //We don't need this query, because we don't have ftpusers for a subdomain! Otherwise the counters count wrong - TheCry /*$ftp_current += sub_records_rlike_count('subdomain_name', 'subdomain', 'domain_id', $user_id, 'userid', 'ftp_users', 'userid', '@', '' );*/ $ftp_current += sub_records_rlike_count('alias_name', 'domain_aliasses', 'domain_id', $user_id, 'userid', 'ftp_users', 'userid', '@', ''); $ftp_max = $data['domain_ftpacc_limit']; $sql_db_current = records_count('sql_database', 'domain_id', $user_id); $sql_db_max = $data['domain_sqld_limit']; $sql_user_current = get_domain_running_sqlu_acc_cnt($sql, $user_id); $sql_user_max = $data['domain_sqlu_limit']; $traff_max = $data['domain_traffic_limit']; $disk_max = $data['domain_disk_limit']; // Make return data return array($sub_current, $sub_max, $als_current, $als_max, $mail_current, $mail_max, $ftp_current, $ftp_max, $sql_db_current, $sql_db_max, $sql_user_current, $sql_user_max, $traff_max, $disk_max); }
function get_user_props($user_id) { global $sql; $query = <<<SQL_QUERY select * from domain where domain_id = ? SQL_QUERY; $res = exec_query($sql, $query, array($user_id)); if ($res->RowCount() == 0) { return array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } $data = $res->FetchRow(); $sub_current = records_count('subdomain_id', 'subdomain', 'domain_id', $user_id); $sub_max = $data['domain_subd_limit']; $als_current = records_count('alias_id', 'domain_aliasses', 'domain_id', $user_id); $als_max = $data['domain_alias_limit']; $mail_current = records_count('mail_id', 'mail_users', 'domain_id', $user_id); $mail_max = $data['domain_mailacc_limit']; $ftp_current = sub_records_rlike_count('domain_name', 'domain', 'domain_id', $user_id, 'userid', 'ftp_users', 'userid', '@', ''); $ftp_current += sub_records_rlike_count('subdomain_name', 'subdomain', 'domain_id', $user_id, 'userid', 'ftp_users', 'userid', '@', ''); $ftp_current += sub_records_rlike_count('alias_name', 'domain_aliasses', 'domain_id', $user_id, 'userid', 'ftp_users', 'userid', '@', ''); $ftp_max = $data['domain_ftpacc_limit']; $sql_db_current = records_count('sqld_id', 'sql_database', 'domain_id', $user_id); $sql_db_max = $data['domain_sqld_limit']; $sql_user_current = get_domain_running_sqlu_acc_cnt(&$sql, $user_id); $sql_user_max = $data['domain_sqlu_limit']; $traff_max = $data['domain_traffic_limit']; $disk_max = $data['domain_disk_limit']; // Make return data return array($sub_current, $sub_max, $als_current, $als_max, $mail_current, $mail_max, $ftp_current, $ftp_max, $sql_db_current, $sql_db_max, $sql_user_current, $sql_user_max, $traff_max, $disk_max); }