Пример #1
0
/**
 * @todo check if it's useful to have the table admin two times in the same query
 * @param EasySCP_TemplateEngine $tpl
 */
function gen_reseller_table($tpl)
{
    $cfg = EasySCP_Registry::get('Config');
    $sql = EasySCP_Registry::get('Db');
    $query = "\n\t\tSELECT\n\t\t\tt1.`admin_id`, t1.`admin_name`, t2.`admin_name` AS created_by\n\t\tFROM\n\t\t\t`admin` AS t1,\n\t\t\t`admin` AS t2\n\t\tWHERE\n\t\t\tt1.`admin_type` = 'reseller'\n\t\tAND\n\t\t\tt1.`created_by` = t2.`admin_id`\n\t\tORDER BY\n\t\t\t`created_by`,\n\t\t\t`admin_id`\n\t";
    $rs = exec_query($sql, $query);
    $i = 0;
    if ($rs->recordCount() == 0) {
        set_page_message(tr('Reseller list is empty!'), 'info');
    } else {
        while (!$rs->EOF) {
            $admin_id = $rs->fields['admin_id'];
            $admin_id_var_name = "admin_id_" . $admin_id;
            $tpl->append(array('NUMBER' => $i + 1, 'RESELLER_NAME' => tohtml($rs->fields['admin_name']), 'OWNER' => tohtml($rs->fields['created_by']), 'CKB_NAME' => $admin_id_var_name));
            $rs->moveNext();
            $i++;
        }
        $tpl->assign('PAGE_MESSAGE', '');
    }
    $query = "\n\t\tSELECT\n\t\t\t`admin_id`, `admin_name`\n\t\tFROM\n\t\t\t`admin`\n\t\tWHERE\n\t\t\t`admin_type` = 'admin'\n\t\tORDER BY\n\t\t\t`admin_name`\n\t";
    $rs = exec_query($sql, $query);
    while (!$rs->EOF) {
        if (isset($_POST['uaction']) && $_POST['uaction'] === 'reseller_owner' && (isset($_POST['dest_admin']) && $_POST['dest_admin'] == $rs->fields['admin_id'])) {
            $selected = $cfg->HTML_SELECTED;
        } else {
            $selected = '';
        }
        $tpl->append(array('OPTION' => tohtml($rs->fields['admin_name']), 'VALUE' => $rs->fields['admin_id'], 'SELECTED' => $selected));
        $rs->moveNext();
    }
    $tpl->assign('PAGE_MESSAGE', '');
}
Пример #2
0
/**
 * @param EasySCP_TemplateEngine $tpl
 * @param EasySCP_Database $sql
 * @param int $dmn_id
 */
function gen_user_assign($tpl, $sql, &$dmn_id)
{
    if (isset($_GET['uname']) && $_GET['uname'] !== '' && is_numeric($_GET['uname'])) {
        $uuser_id = $_GET['uname'];
        $tpl->assign('UNAME', tohtml(get_htuser_name($sql, $uuser_id, $dmn_id)));
        $tpl->assign('UID', $uuser_id);
    } else {
        if (isset($_POST['nadmin_name']) && !empty($_POST['nadmin_name']) && is_numeric($_POST['nadmin_name'])) {
            $uuser_id = $_POST['nadmin_name'];
            $tpl->assign('UNAME', tohtml(get_htuser_name($sql, $uuser_id, $dmn_id)));
            $tpl->assign('UID', $uuser_id);
        } else {
            user_goto('protected_user_manage.php');
        }
    }
    // get groups
    $query = "\n\t\tSELECT\n\t\t\t*\n\t\tFROM\n\t\t\t`htaccess_groups`\n\t\tWHERE\n\t\t\t`dmn_id` = ?\n\t";
    $rs = exec_query($sql, $query, $dmn_id);
    if ($rs->recordCount() == 0) {
        set_page_message(tr('You have no groups!'), 'info');
        user_goto('protected_user_manage.php');
    } else {
        $added_in = 0;
        $not_added_in = 0;
        while (!$rs->EOF) {
            $group_id = $rs->fields['id'];
            $group_name = $rs->fields['ugroup'];
            $members = $rs->fields['members'];
            $members = explode(",", $members);
            $grp_in = 0;
            // let's generete all groups wher the user is assigned
            for ($i = 0, $cnt_members = count($members); $i < $cnt_members; $i++) {
                if ($uuser_id == $members[$i]) {
                    $tpl->append(array('GRP_IN' => tohtml($group_name), 'GRP_IN_ID' => $group_id));
                    $grp_in = $group_id;
                    $added_in++;
                }
            }
            if ($grp_in !== $group_id) {
                $tpl->append(array('GRP_NAME' => tohtml($group_name), 'GRP_ID' => $group_id));
                $not_added_in++;
            }
            $rs->moveNext();
        }
        // generate add/remove buttons
        if ($added_in != 0) {
            $tpl->assign('IN_GROUP', true);
        }
        if ($not_added_in != 0) {
            $tpl->assign('NOT_IN_GROUP', true);
        }
    }
}
Пример #3
0
/**
 * @param EasySCP_TemplateEngine $tpl
 * @param EasySCP_Database $sql
 * @param int $user_id
 * @param string $eid
 */
function gen_error_page_data($tpl, $sql, $eid)
{
    $domain = $_SESSION['user_logged'];
    // Check if we already have an error page
    $vfs = new EasySCP_VirtualFileSystem($domain, $sql);
    $error = $vfs->get('/errors/' . $eid . '.html');
    if (false !== $error) {
        // We already have an error page, return it
        $tpl->assign(array('ERROR' => tohtml($error)));
        return;
    }
    // No error page
    $tpl->assign(array('ERROR' => ''));
}
Пример #4
0
/**
 * @param EasySCP_TemplateEngine $tpl
 */
function dump_gui_debug($tpl)
{
    $gui_debug_data = '<div id="dump_gui_debug">';
    $gui_debug_data .= '<span style="color:#00f;text-decoration:underline;">Content of <strong>$_SESSION</strong>:<br /></span>';
    $gui_debug_data .= '<pre>';
    $gui_debug_data .= htmlentities(print_r($_SESSION, true));
    $gui_debug_data .= '</pre>';
    $gui_debug_data .= '<span style="color:#00f;text-decoration:underline;">Content of <strong>$_POST</strong>:<br /></span>';
    $gui_debug_data .= '<pre>';
    $gui_debug_data .= htmlentities(print_r($_POST, true));
    $gui_debug_data .= '</pre>';
    $gui_debug_data .= '<span style="color:#00f;text-decoration:underline;">Content of <strong>$_GET</strong>:<br /></span>';
    $gui_debug_data .= '<pre>';
    $gui_debug_data .= htmlentities(print_r($_GET, true));
    $gui_debug_data .= '</pre>';
    $gui_debug_data .= '<span style="color:#00f;text-decoration:underline;">Content of <strong>$_COOKIE</strong>:<br /></span>';
    $gui_debug_data .= '<pre>';
    $gui_debug_data .= htmlentities(print_r($_COOKIE, true));
    $gui_debug_data .= '</pre>';
    $gui_debug_data .= '<span style="color:#00f;text-decoration:underline;">Content of <strong>$_FILES</strong>:<br /></span>';
    $gui_debug_data .= '<pre>';
    $gui_debug_data .= htmlentities(print_r($_FILES, true));
    $gui_debug_data .= '</pre>';
    /* Activate debug code if needed
    	$gui_debug_data .= '<span style="color:#00f;text-decoration:underline;">Content of <strong>$_SERVER</strong>:<br /></span>';
    	$gui_debug_data .= '<pre>';
    	$gui_debug_data .= htmlentities(print_r($_SERVER, true));
    	$gui_debug_data .= '</pre>';
    	*/
    $gui_debug_data .= '</div>';
    $tpl->assign('GUI_DEBUG', $gui_debug_data);
}
Пример #5
0
/**
 * @param EasySCP_TemplateEngine $tpl
 * @param EasySCP_Database $sql
 * @param int $dmn_id
 */
function gen_pgroups($tpl, $sql, &$dmn_id)
{
    $cfg = EasySCP_Registry::get('Config');
    $query = "\n\t\tSELECT\n\t\t\t*\n\t\tFROM\n\t\t\t`htaccess_groups`\n\t\tWHERE\n\t\t\t`dmn_id` = ?\n\t\tORDER BY\n\t\t\t`dmn_id` DESC\n\t";
    $rs = exec_query($sql, $query, $dmn_id);
    if ($rs->recordCount() == 0) {
        $tpl->assign('GROUP_MESSAGE', tr('You have no groups!'));
    } else {
        while (!$rs->EOF) {
            $tpl->append(array('GNAME' => tohtml($rs->fields['ugroup']), 'GSTATUS' => translate_dmn_status($rs->fields['status']), 'GROUP_ID' => $rs->fields['id'], 'GROUP_DELETE' => tr('Delete'), 'GROUP_DELETE_SCRIPT' => $rs->fields['status'] === $cfg->ITEM_OK_STATUS && $rs->fields['ugroup'] != $cfg->AWSTATS_GROUP_AUTH ? "action_delete('protected_group_delete.php?gname=" . $rs->fields['id'] . "', '" . $rs->fields['ugroup'] . "')" : tr('N/A')));
            if ($rs->fields['members'] != '') {
                $group_members = '';
                $members = explode(',', $rs->fields['members']);
                $cnt_members = count($members);
                for ($i = 0; $i < $cnt_members; $i++) {
                    $query = "\n\t\t\t\t\t\tSELECT\n\t\t\t\t\t\t\t`uname`\n\t\t\t\t\t\tFROM\n\t\t\t\t\t\t\t`htaccess_users`\n\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\t`id` = ?\n\t\t\t\t\t";
                    $rs_members = exec_query($sql, $query, $members[$i]);
                    if ($cnt_members == 1 || $cnt_members == $i + 1) {
                        $group_members .= tohtml($rs_members->fields['uname']);
                    } else {
                        $group_members .= tohtml($rs_members->fields['uname']) . ', ';
                    }
                }
                $tpl->append('MEMBER', $group_members);
            } else {
                $tpl->append('MEMBER', '');
            }
            $rs->moveNext();
        }
    }
}
Пример #6
0
/**
 * @param EasySCP_TemplateEngine $tpl
 * @param int $reseller_id
 * @param string $reseller_name
 */
function generate_page($tpl, $reseller_id, $reseller_name)
{
    global $rid;
    $cfg = EasySCP_Registry::get('Config');
    $sql = EasySCP_Registry::get('Db');
    $start_index = 0;
    $rows_per_page = $cfg->DOMAIN_ROWS_PER_PAGE;
    if (isset($_GET['psi'])) {
        $start_index = $_GET['psi'];
    } else {
        if (isset($_POST['psi'])) {
            $start_index = $_POST['psi'];
        }
    }
    $tpl->assign(array('POST_PREV_PSI' => $start_index));
    // count query
    $count_query = "\n\t\tSELECT\n\t\t\tCOUNT(`admin_id`) AS cnt\n\t\tFROM\n\t\t\t`admin`\n\t\tWHERE\n\t\t\t`admin_type` = 'user'\n\t\tAND\n\t\t\t`created_by` = ?\n\t";
    $query = <<<SQL_QUERY
\t\tSELECT
\t\t\t`admin_id`
\t\tFROM
\t\t\t`admin`
\t\tWHERE
\t\t\t`admin_type` = 'user'
\t\tAND
\t\t\t`created_by` = ?
\t\tORDER BY
\t\t\t`admin_name` DESC
\t\tLIMIT
\t\t\t{$start_index}, {$rows_per_page}
SQL_QUERY;
    $rs = exec_query($sql, $count_query, $reseller_id);
    $records_count = $rs->fields['cnt'];
    $rs = exec_query($sql, $query, $reseller_id);
    $tpl->assign(array('RESELLER_NAME' => tohtml($reseller_name), 'RESELLER_ID' => $reseller_id));
    if ($rs->rowCount() == 0) {
        $tpl->assign(array('DOMAIN_LIST' => '', 'SCROLL_PREV' => '', 'SCROLL_NEXT' => ''));
    } 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, 'RID' => $rid));
        }
        $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, 'RID' => $rid));
        }
        $row = 1;
        while (!$rs->EOF) {
            $admin_id = $rs->fields['admin_id'];
            $query = "\n\t\t\t\tSELECT\n\t\t\t\t\t`domain_id`\n\t\t\t\tFROM\n\t\t\t\t\t`domain`\n\t\t\t\tWHERE\n\t\t\t\t\t`domain_admin_id` = ?\n\t\t\t;";
            $dres = exec_query($sql, $query, $admin_id);
            generate_domain_entry($tpl, $dres->fields['domain_id'], $row++);
            $rs->moveNext();
        }
    }
}
Пример #7
0
/**
 * @param EasySCP_TemplateEngine $tpl
 * @param int $user_id
 */
function gen_admin_personal_data($tpl, $user_id)
{
    $cfg = EasySCP_Registry::get('Config');
    $sql = EasySCP_Registry::get('Db');
    $query = "\n\t\tSELECT\n\t\t\t`fname`,\n\t\t\t`lname`,\n\t\t\t`gender`,\n\t\t\t`firm`,\n\t\t\t`zip`,\n\t\t\t`city`,\n\t\t\t`state`,\n\t\t\t`country`,\n\t\t\t`street1`,\n\t\t\t`street2`,\n\t\t\t`email`,\n\t\t\t`phone`,\n\t\t\t`fax`\n\t\tFROM\n\t\t\t`admin`\n\t\tWHERE\n\t\t\t`admin_id` = ?\n\t";
    $rs = exec_query($sql, $query, $user_id);
    $tpl->assign(array('FIRST_NAME' => empty($rs->fields['fname']) ? '' : tohtml($rs->fields['fname']), 'LAST_NAME' => empty($rs->fields['lname']) ? '' : tohtml($rs->fields['lname']), 'FIRM' => empty($rs->fields['firm']) ? '' : tohtml($rs->fields['firm']), 'ZIP' => empty($rs->fields['zip']) ? '' : tohtml($rs->fields['zip']), 'CITY' => empty($rs->fields['city']) ? '' : tohtml($rs->fields['city']), 'STATE' => empty($rs->fields['state']) ? '' : tohtml($rs->fields['state']), 'COUNTRY' => empty($rs->fields['country']) ? '' : tohtml($rs->fields['country']), 'STREET_1' => empty($rs->fields['street1']) ? '' : tohtml($rs->fields['street1']), 'STREET_2' => empty($rs->fields['street2']) ? '' : tohtml($rs->fields['street2']), 'EMAIL' => empty($rs->fields['email']) ? '' : tohtml($rs->fields['email']), 'PHONE' => empty($rs->fields['phone']) ? '' : tohtml($rs->fields['phone']), 'FAX' => empty($rs->fields['fax']) ? '' : tohtml($rs->fields['fax']), 'VL_MALE' => $rs->fields['gender'] == 'M' ? $cfg->HTML_SELECTED : '', 'VL_FEMALE' => $rs->fields['gender'] == 'F' ? $cfg->HTML_SELECTED : '', 'VL_UNKNOWN' => $rs->fields['gender'] == 'U' || empty($rs->fields['gender']) ? $cfg->HTML_SELECTED : ''));
}
Пример #8
0
/**
 * @param EasySCP_TemplateEngine $tpl
 */
function add_user($tpl)
{
    $cfg = EasySCP_Registry::get('Config');
    $sql = EasySCP_Registry::get('Db');
    if (isset($_POST['uaction']) && $_POST['uaction'] === 'add_user') {
        if (check_user_data()) {
            $upass = crypt_user_pass($_POST['pass']);
            $user_id = $_SESSION['user_id'];
            $username = clean_input($_POST['username']);
            $fname = clean_input($_POST['fname']);
            $lname = clean_input($_POST['lname']);
            $gender = clean_input($_POST['gender']);
            $firm = clean_input($_POST['firm']);
            $zip = clean_input($_POST['zip']);
            $city = clean_input($_POST['city']);
            $state = clean_input($_POST['state']);
            $country = clean_input($_POST['country']);
            $email = clean_input($_POST['email']);
            $phone = clean_input($_POST['phone']);
            $fax = clean_input($_POST['fax']);
            $street1 = clean_input($_POST['street1']);
            $street2 = clean_input($_POST['street2']);
            if (get_gender_by_code($gender, true) === null) {
                $gender = '';
            }
            $query = "\n\t\t\t\tINSERT INTO `admin`\n\t\t\t\t\t(\n\t\t\t\t\t\t`admin_name`,\n\t\t\t\t\t\t`admin_pass`,\n\t\t\t\t\t\t`admin_type`,\n\t\t\t\t\t\t`domain_created`,\n\t\t\t\t\t\t`created_by`,\n\t\t\t\t\t\t`fname`,\n\t\t\t\t\t\t`lname`,\n\t\t\t\t\t\t`firm`,\n\t\t\t\t\t\t`zip`,\n\t\t\t\t\t\t`city`,\n\t\t\t\t\t\t`state`,\n\t\t\t\t\t\t`country`,\n\t\t\t\t\t\t`email`,\n\t\t\t\t\t\t`phone`,\n\t\t\t\t\t\t`fax`,\n\t\t\t\t\t\t`street1`,\n\t\t\t\t\t\t`street2`,\n\t\t\t\t\t\t`gender`\n\t\t\t\t\t) VALUES (\n\t\t\t\t\t\t?,\n\t\t\t\t\t\t?,\n\t\t\t\t\t\t'admin',\n\t\t\t\t\t\tunix_timestamp(),\n\t\t\t\t\t\t?,\n\t\t\t\t\t\t?,\n\t\t\t\t\t\t?,\n\t\t\t\t\t\t?,\n\t\t\t\t\t\t?,\n\t\t\t\t\t\t?,\n\t\t\t\t\t\t?,\n\t\t\t\t\t\t?,\n\t\t\t\t\t\t?,\n\t\t\t\t\t\t?,\n\t\t\t\t\t\t?,\n\t\t\t\t\t\t?,\n\t\t\t\t\t\t?,\n\t\t\t\t\t\t?\n\t\t\t\t\t)\n\t\t\t";
            exec_query($sql, $query, array($username, $upass, $user_id, $fname, $lname, $firm, $zip, $city, $state, $country, $email, $phone, $fax, $street1, $street2, $gender));
            $new_admin_id = $sql->insertId();
            $user_logged = $_SESSION['user_logged'];
            write_log("{$user_logged}: add admin: {$username}");
            $user_def_lang = $_SESSION['user_def_lang'];
            $user_theme_color = $_SESSION['user_theme'];
            $query = "\n\t\t\t\tINSERT INTO `user_gui_props` (\n\t\t\t\t\t`user_id`,\n\t\t\t\t\t`lang`,\n\t\t\t\t\t`layout`\n\t\t\t\t) VALUES (?,?,?)\n\t\t\t";
            exec_query($sql, $query, array($new_admin_id, $user_def_lang, $user_theme_color));
            send_add_user_auto_msg($user_id, clean_input($_POST['username']), clean_input($_POST['pass']), clean_input($_POST['email']), clean_input($_POST['fname']), clean_input($_POST['lname']), tr('Administrator'), $gender);
            $_SESSION['user_added'] = 1;
            user_goto('manage_users.php');
        } else {
            // check user data
            $tpl->assign(array('EMAIL' => clean_input($_POST['email'], true), 'USERNAME' => clean_input($_POST['username'], true), 'FIRST_NAME' => clean_input($_POST['fname'], true), 'LAST_NAME' => clean_input($_POST['lname'], true), 'FIRM' => clean_input($_POST['firm'], true), 'ZIP' => clean_input($_POST['zip'], true), 'CITY' => clean_input($_POST['city'], true), 'STATE' => clean_input($_POST['state'], true), 'COUNTRY' => clean_input($_POST['country'], true), 'STREET_1' => clean_input($_POST['street1'], true), 'STREET_2' => clean_input($_POST['street2'], true), 'PHONE' => clean_input($_POST['phone'], true), 'FAX' => clean_input($_POST['fax'], true), 'VL_MALE' => $_POST['gender'] == 'M' ? $cfg->HTML_SELECTED : '', 'VL_FEMALE' => $_POST['gender'] == 'F' ? $cfg->HTML_SELECTED : '', 'VL_UNKNOWN' => $_POST['gender'] == 'U' || empty($_POST['gender']) ? $cfg->HTML_SELECTED : ''));
        }
    } else {
        $tpl->assign(array('EMAIL' => '', 'USERNAME' => '', 'FIRST_NAME' => '', 'LAST_NAME' => '', 'FIRM' => '', 'ZIP' => '', 'CITY' => '', 'STATE' => '', 'COUNTRY' => '', 'STREET_1' => '', 'STREET_2' => '', 'PHONE' => '', 'FAX' => '', 'VL_MALE' => '', 'VL_FEMALE' => '', 'VL_UNKNOWN' => $cfg->HTML_SELECTED));
    }
    // end else
}
Пример #9
0
/**
 * @param EasySCP_TemplateEngine $tpl
 */
function generate_page($tpl)
{
    global $month, $year;
    $cfg = EasySCP_Registry::get('Config');
    $sql = EasySCP_Registry::get('Db');
    $start_index = 0;
    $rows_per_page = $cfg->DOMAIN_ROWS_PER_PAGE;
    if (isset($_GET['psi']) && is_numeric($_GET['psi'])) {
        $start_index = $_GET['psi'];
    } else {
        if (isset($_POST['psi']) && is_numeric($_GET['psi'])) {
            $start_index = $_POST['psi'];
        }
    }
    $tpl->assign(array('POST_PREV_PSI' => $start_index));
    // count query
    $count_query = "\n\t\tSELECT\n\t\t\tCOUNT(`admin_id`) AS cnt\n\t\tFROM\n\t\t\t`admin`\n\t\tWHERE\n\t\t\t`admin_type` = 'reseller'\n\t";
    $query = "\n\t\tSELECT\n\t\t\t`admin_id`, `admin_name`\n\t\tFROM\n\t\t\t`admin`\n\t\tWHERE\n\t\t\t`admin_type` = 'reseller'\n\t\tORDER BY\n\t\t\t`admin_name` DESC\n\t\tLIMIT\n\t\t\t{$start_index}, {$rows_per_page};\n\t";
    $rs = exec_query($sql, $count_query);
    $records_count = $rs->fields['cnt'];
    $rs = exec_query($sql, $query);
    if ($rs->rowCount() == 0) {
        set_page_message(tr('There are no resellers in your system!'), 'info');
        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));
        }
        gen_select_lists($tpl, @$month, @$year);
        $row = 1;
        while (!$rs->EOF) {
            generate_reseller_entry($tpl, $rs->fields['admin_id'], $rs->fields['admin_name'], $row++);
            $rs->moveNext();
        }
    }
}
Пример #10
0
 /**
  * Prepares the template
  *
  * @return void
  */
 protected static function prepareTemplate()
 {
     self::$EasySCP_TemplateEngine = EasySCP_TemplateEngine::getInstance();
     // check if i18n support is available
     if (function_exists('tr')) {
         self::$EasySCP_TemplateEngine->assign(array('TR_PAGE_TITLE' => tr('EasySCP Error'), 'THEME_CHARSET' => tr('encoding'), 'MSG_TYPE' => 'error', 'MESSAGE' => self::$exceptionMessage));
     } else {
         self::$EasySCP_TemplateEngine->assign(array('TR_PAGE_TITLE' => 'EasySCP Error', 'THEME_CHARSET' => 'UTF-8', 'MSG_TYPE' => 'error', 'MESSAGE' => self::$exceptionMessage));
     }
 }
Пример #11
0
/**
 * @param EasySCP_TemplateEngine $tpl
 * @param EasySCP_Database $sql
 * @param int $dmn_id
 * @param string $dmn_name
 */
function gen_page_ftp_list($tpl, $sql, $dmn_id, $dmn_name)
{
    $query = "\n\t\tSELECT\n\t\t\t`gid`,\n\t\t\t`members`\n\t\tFROM\n\t\t\t`ftp_group`\n\t\tWHERE\n\t\t\t`groupname` = ?\n\t;";
    $rs = exec_query($sql, $query, $dmn_name);
    if ($rs->recordCount() == 0) {
        $tpl->assign(array('FTP_MSG' => tr('FTP list is empty!'), 'FTP_MSG_TYPE' => 'info', 'FTP_ITEM' => '', 'FTPS_TOTAL' => '', 'TABLE_LIST' => ''));
    } else {
        $ftp_accs = explode(',', $rs->fields['members']);
        sort($ftp_accs);
        reset($ftp_accs);
        for ($i = 0, $cnt_ftp_accs = count($ftp_accs); $i < $cnt_ftp_accs; $i++) {
            $tpl->assign('ITEM_CLASS', $i % 2 == 0 ? 'content' : 'content2');
            $ftp_accs_encode[$i] = decode_idna($ftp_accs[$i]);
            $query = "\n\t\t\t\tSELECT\n\t\t\t\t\t`net2ftppasswd`\n\t\t\t\tFROM\n\t\t\t\t\t`ftp_users`\n\t\t\t\tWHERE\n\t\t\t\t\t`userid` = ?\n\t\t\t;";
            $rs = exec_query($sql, $query, $ftp_accs[$i]);
            $tpl->append(array('FTP_ACCOUNT' => tohtml($ftp_accs_encode[$i]), 'UID' => urlencode($ftp_accs[$i]), 'FTP_LOGIN_AVAILABLE' => !is_null($rs->fields['net2ftppasswd'])));
        }
        $tpl->assign('TOTAL_FTP_ACCOUNTS', count($ftp_accs));
    }
}
Пример #12
0
/**
 * @param EasySCP_TemplateEngine $tpl
 * @param EasySCP_Database $sql
 */
function gen_page_data($tpl, $sql)
{
    if (isset($_POST['uaction']) && $_POST['uaction'] === 'send_circular') {
        $tpl->assign(array('MESSAGE_SUBJECT' => clean_input($_POST['msg_subject'], true), 'MESSAGE_TEXT' => clean_input($_POST['msg_text'], true), 'SENDER_EMAIL' => clean_input($_POST['sender_email'], true), 'SENDER_NAME' => clean_input($_POST['sender_name'], true)));
    } else {
        $user_id = $_SESSION['user_id'];
        $query = "\n\t\t\tSELECT\n\t\t\t\t`fname`, `lname`, `email`\n\t\t\tFROM\n\t\t\t\t`admin`\n\t\t\tWHERE\n\t\t\t\t`admin_id` = ?\n\t\t\tGROUP BY\n\t\t\t\t`email`\n\t\t";
        $rs = exec_query($sql, $query, $user_id);
        if (isset($rs->fields['fname']) && isset($rs->fields['lname'])) {
            $sender_name = $rs->fields['fname'] . ' ' . $rs->fields['lname'];
        } elseif (isset($rs->fields['fname']) && !isset($rs->fields['lname'])) {
            $sender_name = $rs->fields['fname'];
        } elseif (!isset($rs->fields['fname']) && isset($rs->fields['lname'])) {
            $sender_name = $rs->fields['lname'];
        } else {
            $sender_name = '';
        }
        $tpl->assign(array('MESSAGE_SUBJECT' => '', 'MESSAGE_TEXT' => '', 'SENDER_EMAIL' => tohtml($rs->fields['email']), 'SENDER_NAME' => tohtml($sender_name)));
    }
}
Пример #13
0
/**
 * @param EasySCP_TemplateEngine $tpl
 * @param EasySCP_Database $sql
 * @param string $ftp_acc
 */
function gen_page_dynamic_data($tpl, $sql, $ftp_acc)
{
    $cfg = EasySCP_Registry::get('Config');
    $query = "\n\t\tSELECT\n\t\t\t`homedir`\n\t\tFROM\n\t\t\t`ftp_users`\n\t\tWHERE\n\t\t\t`userid` = ?\n\t";
    $rs = exec_query($sql, $query, $ftp_acc);
    $homedir = $rs->fields['homedir'];
    $domain_ftp = $_SESSION['user_logged'];
    $nftp_dir = $cfg->FTP_HOMEDIR . "/" . $domain_ftp;
    if ($nftp_dir == $homedir) {
        $odir = '';
        $oins = '';
    } else {
        $odir = $cfg->HTML_CHECKED;
        $oins = substr($homedir, strlen($nftp_dir));
    }
    $tpl->assign(array('FTP_ACCOUNT' => $ftp_acc, 'ID' => $ftp_acc, 'USE_OTHER_DIR_CHECKED' => $odir, 'OTHER_DIR' => $oins));
}
Пример #14
0
/**
 * @param EasySCP_TemplateEngine $tpl
 * @param EasySCP_Database $sql
 * @param int $user_id
 */
function gen_db_list($tpl, $sql, $user_id)
{
    $dmn_id = get_user_domain_id($user_id);
    $query = "\n\t\tSELECT\n\t\t\t`sqld_id`, `sqld_name`\n\t\tFROM\n\t\t\t`sql_database`\n\t\tWHERE\n\t\t\t`domain_id` = ?\n\t\tORDER BY\n\t\t\t`sqld_name`\n\t";
    $rs = exec_query($sql, $query, $dmn_id);
    if ($rs->recordCount() == 0) {
        set_page_message(tr('Database list is empty!'), 'info');
        $tpl->assign('DB_LIST', '');
    } else {
        while (!$rs->EOF) {
            $db_id = $rs->fields['sqld_id'];
            $db_name = $rs->fields['sqld_name'];
            $num = gen_db_user_list($tpl, $sql, $db_id);
            $tpl->append(array('DB_ID' => $db_id, 'DB_NAME' => tohtml($db_name), 'DB_NAME_JS' => tojs($db_name), 'DB_MSG' => $num ? '' : tr('Database user list is empty!')));
            $rs->moveNext();
        }
    }
}
Пример #15
0
/**
 * @param EasySCP_TemplateEngine $tpl
 */
function gen_page_post_data($tpl)
{
    $cfg = EasySCP_Registry::get('Config');
    if ($cfg->MYSQL_PREFIX === 'yes') {
        $tpl->assign('MYSQL_PREFIX_NO', true);
        if ($cfg->MYSQL_PREFIX_TYPE === 'behind') {
            $tpl->assign('MYSQL_PREFIX_BEHIND', true);
        } else {
            $tpl->assign('MYSQL_PREFIX_INFRONT', true);
        }
    } else {
        $tpl->assign('MYSQL_PREFIX_YES', true);
        $tpl->assign('MYSQL_PREFIX_ALL', true);
    }
    if (isset($_POST['uaction']) && $_POST['uaction'] === 'add_db') {
        $tpl->assign(array('DB_NAME' => clean_input($_POST['db_name'], true), 'USE_DMN_ID' => isset($_POST['use_dmn_id']) && $_POST['use_dmn_id'] === 'on' ? $cfg->HTML_CHECKED : '', 'START_ID_POS_CHECKED' => isset($_POST['id_pos']) && $_POST['id_pos'] !== 'end' ? $cfg->HTML_CHECKED : '', 'END_ID_POS_CHECKED' => isset($_POST['id_pos']) && $_POST['id_pos'] === 'end' ? $cfg->HTML_CHECKED : ''));
    } else {
        $tpl->assign(array('DB_NAME' => '', 'USE_DMN_ID' => '', 'START_ID_POS_CHECKED' => $cfg->HTML_CHECKED, 'END_ID_POS_CHECKED' => ''));
    }
}
Пример #16
0
/**
 * @param EasySCP_TemplateEngine $tpl
 */
function generate_page($tpl)
{
    $cfg = EasySCP_Registry::get('Config');
    $sql = EasySCP_Registry::get('Db');
    $start_index = 0;
    $rows_per_page = 12;
    if (isset($_GET['psi']) && is_numeric($_GET['psi'])) {
        $start_index = intval($_GET['psi']);
    }
    $count_query = "\n\t\tSELECT\n\t\t\tCOUNT(`log_id`) AS cnt\n\t\tFROM\n\t\t\t`log`;\n\t";
    $query = "\n\t\tSELECT\n\t\t\tDATE_FORMAT(`log_time`, '%Y-%m-%d %H:%i') AS dat, `log_message`\n\t\tFROM\n\t\t\t`log`\n\t\tORDER BY\n\t\t\t`log_time` DESC\n\t\tLIMIT\n\t\t\t{$start_index}, {$rows_per_page};\n\t";
    $rs = exec_query($sql, $count_query);
    $records_count = $rs->fields['cnt'];
    $rs = exec_query($sql, $query);
    if ($rs->rowCount() == 0) {
        // set_page_message(tr('Log is empty!'), 'info');
        $tpl->assign(array('PAG_MESSAGE' => tr('Log is empty!')));
    } 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));
        }
        $tpl->assign(array('PAGE_MESSAGE' => ''));
        while (!$rs->EOF) {
            $log_message = $rs->fields['log_message'];
            $replaces = array('/[^a-zA-Z](delete[sd]?)[^a-zA-Z]/i' => ' <strong style="color:#f00">\\1</strong> ', '/[^a-zA-Z](remove[sd]?)[^a-zA-Z]/i' => ' <strong style="color:#f00">\\1</strong> ', '/[^a-zA-Z](add(s|ed)?)[^a-zA-Z]/i' => ' <strong style="color:#3c6">\\1</strong> ', '/[^a-zA-Z](change[sd]?)[^a-zA-Z]/i' => ' <strong style="color:#30f">\\1</strong> ', '/[^a-zA-Z](update[sd]?)[^a-zA-Z]/i' => ' <strong style="color:#30f">\\1</strong> ', '/[^a-zA-Z](edit(s|ed)?)[^a-zA-Z]/i' => ' <strong style="color:#3c6">\\1</strong> ', '/[^a-zA-Z](unknown)[^a-zA-Z]/i' => ' <strong style="color:#c0f">\\1</strong> ', '/[^a-zA-Z](logged)[^a-zA-Z]/i' => ' <strong style="color:#360">\\1</strong> ', '/[^a-zA-Z]((session )?manipulation)[^a-zA-Z]/i' => ' <strong style="color:#f00">\\1</strong> ', '/[^a-zA-Z]*(Warning[\\!]?)[^a-zA-Z]/i' => ' <strong style="color:#f00">\\1</strong> ', '/(bad password login data)/i' => ' <strong style="color:#f00">\\1</strong> ');
            foreach ($replaces as $pattern => $replacement) {
                $log_message = preg_replace($pattern, $replacement, $log_message);
            }
            $date_formt = $cfg->DATE_FORMAT . ' H:i';
            $tpl->append(array('ADM_MESSAGE' => $log_message, 'DATE' => date($date_formt, strtotime($rs->fields['dat']))));
            $rs->moveNext();
        }
        // end while
    }
}
Пример #17
0
/**
 * @param EasySCP_TemplateEngine $tpl
 * @param int $user_id
 * @param int $domain_id
 */
function gen_detaildom_page($tpl, $user_id, $domain_id)
{
    $sql = EasySCP_Registry::get('Db');
    $cfg = EasySCP_Registry::get('Config');
    // Get domain data
    $query = "\n\t\tSELECT\n\t\t\t*,\n\t\t\tIFNULL(`domain_disk_usage`, 0) AS domain_disk_usage\n\t\tFROM\n\t\t\t`domain`\n\t\tWHERE\n\t\t\t`domain_id` = ?\n\t";
    $res = exec_query($sql, $query, $domain_id);
    $data = $res->fetchRow();
    if ($res->recordCount() <= 0) {
        user_goto('users.php?psi=last');
    }
    // Get admin data
    $created_by = $_SESSION['user_id'];
    $query = "SELECT `admin_name` FROM `admin` WHERE `admin_id` = ? AND `created_by` = ?";
    $res1 = exec_query($sql, $query, array($data['domain_admin_id'], $created_by));
    // NXW: Unused variable so...
    // $data1 = $res1->fetchRow();
    $res1->fetchRow();
    if ($res1->recordCount() <= 0) {
        user_goto('users.php?psi=last');
    }
    // Get IP info
    $query = "SELECT * FROM `server_ips` WHERE `ip_id` = ?";
    $ipres = exec_query($sql, $query, $data['domain_ip_id']);
    $ipres->fetchRow();
    // Get staus name
    $dstatus = translate_dmn_status($data['status']);
    // Traffic diagram
    $fdofmnth = mktime(0, 0, 0, date("m"), 1, date("Y"));
    $ldofmnth = mktime(1, 0, 0, date("m") + 1, 0, date("Y"));
    $query = "SELECT\n\t\t\tIFNULL(SUM(`dtraff_web_in`), 0) AS dtraff_web_in,\n\t\t\tIFNULL(SUM(`dtraff_web_out`), 0) AS dtraff_web_out,\n\t\t\tIFNULL(SUM(`dtraff_ftp_in`), 0) AS dtraff_ftp_in,\n\t\t\tIFNULL(SUM(`dtraff_ftp_out`), 0) AS dtraff_ftp_out,\n\t\t\tIFNULL(SUM(`dtraff_mail`), 0) AS dtraff_mail,\n\t\t\tIFNULL(SUM(`dtraff_pop`),0) AS dtraff_pop\n\t\tFROM\n\t\t\t`domain_traffic`\n\t\tWHERE\n\t\t\t`domain_id` = ?\n\t\tAND\n\t\t\t`dtraff_time` > ?\n\t\tAND\n\t\t\t`dtraff_time` < ?\n\t";
    $res7 = exec_query($sql, $query, array($data['domain_id'], $fdofmnth, $ldofmnth));
    $dtraff = $res7->fetchRow();
    $sumtraff = $dtraff['dtraff_web_in'] + $dtraff['dtraff_web_out'] + $dtraff['dtraff_ftp_in'] + $dtraff['dtraff_ftp_out'] + $dtraff['dtraff_mail'] + $dtraff['dtraff_pop'];
    // NXW: Unused variables so ...
    /*
    $dtraffmb = sprintf("%.1f", ($sumtraff / 1024) / 1024);
    $month = date("m");
    $year = date("Y");
    */
    $query = "SELECT * FROM `server_ips` WHERE `ip_id` = ?";
    $res8 = exec_query($sql, $query, $data['domain_ip_id']);
    $ipdat = $res8->fetchRow();
    $domain_traffic_limit = $data['domain_traffic_limit'];
    $domain_all_traffic = $sumtraff;
    $traffic_percent = $domain_all_traffic != 0 ? sprintf("%.2f", 100 * $domain_all_traffic / ($domain_traffic_limit * 1024 * 1024)) : 0;
    // Get disk status
    $domdu = $data['domain_disk_usage'];
    $domdl = $data['domain_disk_limit'];
    $domduh = sizeit($domdu);
    $disk_percent = sprintf("%.2f", 100 * $domdu / ($domdl * 1024 * 1024));
    // Get current mail count
    $query = "SELECT COUNT(`mail_id`) AS mcnt " . "FROM `mail_users` " . "WHERE `domain_id` = ? " . "AND `mail_type` NOT RLIKE '_catchall'";
    $res6 = exec_query($sql, $query, $data['domain_id']);
    $dat3 = $res6->fetchRow();
    $mail_limit = translate_limit_value($data['domain_mailacc_limit']);
    // FTP stat
    $query = "SELECT `gid` FROM `ftp_group` WHERE `groupname` = ?";
    $res4 = exec_query($sql, $query, $data['domain_name']);
    $ftp_gnum = $res4->rowCount();
    if ($ftp_gnum == 0) {
        $used_ftp_acc = 0;
    } else {
        $dat1 = $res4->fetchRow();
        $query = "SELECT COUNT(*) AS ftp_cnt FROM `ftp_users` WHERE `gid` = ?";
        $res5 = exec_query($sql, $query, $dat1['gid']);
        $dat2 = $res5->fetchRow();
        $used_ftp_acc = $dat2['ftp_cnt'];
    }
    $ftp_limit = translate_limit_value($data['domain_ftpacc_limit']);
    // Get sql database count
    $query = "SELECT COUNT(*) AS dnum FROM `sql_database` WHERE `domain_id` = ?";
    $res = exec_query($sql, $query, $data['domain_id']);
    $dat5 = $res->fetchRow();
    $sql_db = translate_limit_value($data['domain_sqld_limit']);
    // Get sql users count
    $query = "SELECT COUNT(u.`sqlu_id`) AS ucnt FROM sql_user u, sql_database d WHERE u.`sqld_id` = d.`sqld_id` AND d.`domain_id` = ?";
    $res = exec_query($sql, $query, $data['domain_id']);
    $dat6 = $res->fetchRow();
    $sql_users = translate_limit_value($data['domain_sqlu_limit']);
    // Get subdomain
    $query = "SELECT COUNT(`subdomain_id`) AS sub_num FROM `subdomain` WHERE `domain_id` = ?";
    $res1 = exec_query($sql, $query, $domain_id);
    $sub_num_data = $res1->fetchRow();
    $query = "SELECT COUNT(`subdomain_alias_id`) AS sub_num FROM `subdomain_alias` WHERE `alias_id` IN (SELECT `alias_id` FROM `domain_aliasses` WHERE `domain_id` = ?)";
    $res1 = exec_query($sql, $query, $domain_id);
    $alssub_num_data = $res1->fetchRow();
    $sub_dom = translate_limit_value($data['domain_subd_limit']);
    // Get domain aliases
    $query = "SELECT COUNT(*) AS alias_num FROM `domain_aliasses` WHERE `domain_id` = ?";
    $res1 = exec_query($sql, $query, $domain_id);
    $alias_num_data = $res1->fetchRow();
    // Check if Backup support is available for this user
    switch ($data['allowbackup']) {
        case "full":
            $tpl->assign(array('VL_BACKUP_SUPPORT' => tr('Full')));
            break;
        case "sql":
            $tpl->assign(array('VL_BACKUP_SUPPORT' => tr('SQL')));
            break;
        case "dmn":
            $tpl->assign(array('VL_BACKUP_SUPPORT' => tr('Domain')));
            break;
        default:
            $tpl->assign(array('VL_BACKUP_SUPPORT' => tr('No')));
    }
    $dom_alias = translate_limit_value($data['domain_alias_limit']);
    // Fill in the fields
    $tpl->assign(array('DOMAIN_ID' => $data['domain_id'], 'VL_DOMAIN_NAME' => tohtml(decode_idna($data['domain_name'])), 'VL_DOMAIN_IP' => tohtml($ipdat['ip_number'] . ' (' . $ipdat['ip_alias'] . ')'), 'VL_STATUS' => $dstatus, 'VL_PHP_SUPP' => $data['domain_php'] == 'yes' ? tr('Enabled') : tr('Disabled'), 'VL_CGI_SUPP' => $data['domain_cgi'] == 'yes' ? tr('Enabled') : tr('Disabled'), 'VL_DNS_SUPP' => $data['domain_dns'] == 'yes' ? tr('Enabled') : tr('Disabled'), 'VL_MYSQL_SUPP' => $data['domain_sqld_limit'] >= 0 ? tr('Enabled') : tr('Disabled'), 'VL_TRAFFIC_PERCENT' => $traffic_percent, 'VL_TRAFFIC_USED' => sizeit($domain_all_traffic), 'VL_TRAFFIC_LIMIT' => sizeit($domain_traffic_limit, 'MB'), 'VL_DISK_PERCENT' => $disk_percent, 'VL_DISK_USED' => $domduh, 'VL_DISK_LIMIT' => sizeit($data['domain_disk_limit'], 'MB'), 'VL_MAIL_ACCOUNTS_USED' => $dat3['mcnt'], 'VL_MAIL_ACCOUNTS_LIIT' => $mail_limit, 'VL_FTP_ACCOUNTS_USED' => $used_ftp_acc, 'VL_FTP_ACCOUNTS_LIIT' => $ftp_limit, 'VL_SQL_DB_ACCOUNTS_USED' => $dat5['dnum'], 'VL_SQL_DB_ACCOUNTS_LIIT' => $sql_db, 'VL_SQL_USER_ACCOUNTS_USED' => $dat6['ucnt'], 'VL_SQL_USER_ACCOUNTS_LIIT' => $sql_users, 'VL_SUBDOM_ACCOUNTS_USED' => $sub_num_data['sub_num'] + $alssub_num_data['sub_num'], 'VL_SUBDOM_ACCOUNTS_LIIT' => $sub_dom, 'VL_DOMALIAS_ACCOUNTS_USED' => $alias_num_data['alias_num'], 'VL_DOMALIAS_ACCOUNTS_LIIT' => $dom_alias));
}
Пример #18
0
/**
 * generate page add user 3
 * @param EasySCP_TemplateEngine $tpl
 */
function gen_user_add3_page($tpl)
{
    global $dmn_name, $hpid, $dmn_user_name, $user_email, $customer_id, $first_name, $last_name, $gender, $firm, $zip, $city, $state, $country, $street_one, $street_two, $phone, $fax;
    $cfg = EasySCP_Registry::get('Config');
    $dmn_user_name = decode_idna($dmn_user_name);
    // Fill in the fields
    $tpl->assign(array('VL_USERNAME' => tohtml($dmn_user_name), 'VL_USR_PASS' => passgen(), 'VL_MAIL' => tohtml($user_email), 'VL_USR_ID' => $customer_id, 'VL_USR_NAME' => tohtml($first_name), 'VL_LAST_USRNAME' => tohtml($last_name), 'VL_USR_FIRM' => tohtml($firm), 'VL_USR_POSTCODE' => tohtml($zip), 'VL_USRCITY' => tohtml($city), 'VL_USRSTATE' => tohtml($state), 'VL_MALE' => $gender == 'M' ? $cfg->HTML_SELECTED : '', 'VL_FEMALE' => $gender == 'F' ? $cfg->HTML_SELECTED : '', 'VL_UNKNOWN' => $gender == 'U' ? $cfg->HTML_SELECTED : '', 'VL_COUNTRY' => tohtml($country), 'VL_STREET1' => tohtml($street_one), 'VL_STREET2' => tohtml($street_two), 'VL_PHONE' => tohtml($phone), 'VL_FAX' => tohtml($fax)));
    generate_ip_list($tpl, $_SESSION['user_id']);
    $_SESSION['local_data'] = "{$dmn_name};{$hpid}";
}
Пример #19
0
/**
 * @param EasySCP_TemplateEngine $tpl
 */
function gen_page_js($tpl)
{
    if (isset($_SESSION['subdomain_count']) && isset($_SESSION['alias_count'])) {
        // no subdomains and no alias
        $tpl->assign('JS_TO_SUBDOMAIN', '');
        $tpl->assign('JS_TO_ALIAS_DOMAIN', '');
        $tpl->assign('JS_TO_ALL_DOMAIN', '');
    } else {
        if (isset($_SESSION['subdomain_count']) && !isset($_SESSION['alias_count'])) {
            // no subdomains - alaias available
            $tpl->assign('JS_NOT_DOMAIN', '');
            $tpl->assign('JS_TO_SUBDOMAIN', '');
            $tpl->assign('JS_TO_ALL_DOMAIN', '');
        } else {
            if (!isset($_SESSION['subdomain_count']) && isset($_SESSION['alias_count'])) {
                // no alias - subdomain available
                $tpl->assign('JS_NOT_DOMAIN', '');
                $tpl->assign('JS_TO_ALIAS_DOMAIN', '');
                $tpl->assign('JS_TO_ALL_DOMAIN', '');
            } else {
                // there are subdomains and aliases
                $tpl->assign('JS_NOT_DOMAIN', '');
                $tpl->assign('JS_TO_SUBDOMAIN', '');
                $tpl->assign('JS_TO_ALIAS_DOMAIN', '');
            }
        }
    }
    unset($GLOBALS['subdomain_count']);
    unset($GLOBALS['alias_count']);
    unset($_SESSION['subdomain_count']);
    unset($_SESSION['alias_count']);
}
Пример #20
0
/**
 * @param EasySCP_TemplateEngine $tpl
 * @param int $admin_id
 */
function gen_messages_table($tpl, $admin_id)
{
    $sql = EasySCP_Registry::get('Db');
    $query = "\n\t\tSELECT\n\t\t\t`ticket_id`\n\t\tFROM\n\t\t\t`tickets`\n\t\tWHERE\n\t\t\t(`ticket_from` = ? OR `ticket_to` = ?)\n\t\tAND\n\t\t\t`ticket_status` IN ('1', '4')\n\t\tAND\n\t\t\t`ticket_reply` = '0'\n\t;";
    $res = exec_query($sql, $query, array($admin_id, $admin_id));
    $questions = $res->rowCount();
    if ($questions == 0) {
        $tpl->assign(array('TR_NO_NEW_MESSAGES' => tr('You have no new support questions!'), 'MSG_ENTRY' => ''));
    } else {
        $tpl->assign(array('TR_NEW_MSGS' => tr('You have <strong>%d</strong> new support questions', $questions), 'NO_MESSAGES' => '', 'TR_VIEW' => tr('View')));
    }
}
Пример #21
0
/**
 * Generate load data from sql for requested hosting plan
 * @param EasySCP_TemplateEngine $tpl
 * @param EasySCP_Database $sql
 * @param int $hpid
 * @param int $admin_id
 */
function gen_load_ehp_page($tpl, $sql, $hpid, $admin_id)
{
    $cfg = EasySCP_Registry::get('Config');
    $_SESSION['hpid'] = $hpid;
    if (isset($cfg->HOSTING_PLANS_LEVEL) && $cfg->HOSTING_PLANS_LEVEL === 'admin') {
        $query = "\n\t\t\tSELECT\n\t\t\t\t*\n\t\t\tFROM\n\t\t\t\t`hosting_plans`\n\t\t\tWHERE\n\t\t\t\t`id` = ?\n\t\t\t;\n\t\t";
        $res = exec_query($sql, $query, $hpid);
        $readonly = $cfg->HTML_READONLY;
        $disabled = $cfg->HTML_DISABLED;
        $edit_hp = tr('View hosting plan');
        $tpl->assign('FORM', '');
    } else {
        $query = "\n\t\t\tSELECT\n\t\t\t\t*\n\t\t\tFROM\n\t\t\t\t`hosting_plans`\n\t\t\tWHERE\n\t\t\t\t`reseller_id` = ?\n\t\t\tAND\n\t\t\t\t`id` = ?\n\t\t\t;\n\t\t";
        $res = exec_query($sql, $query, array($admin_id, $hpid));
        $readonly = '';
        $disabled = '';
        $edit_hp = tr('Edit hosting plan');
    }
    if ($res->rowCount() !== 1) {
        // Error
        user_goto('hosting_plan.php');
    }
    $data = $res->fetchRow();
    $props = unserialize($data['props']);
    $description = $data['description'];
    $price = $data['price'];
    $setup_fee = $data['setup_fee'];
    $value = $data['value'];
    $payment = $data['payment'];
    $status = $data['status'];
    $tos = $data['tos'];
    $hp_php = $props['allow_php'];
    $hp_phpe = $props['allow_phpe'];
    $hp_cgi = $props['allow_cgi'];
    $hp_sub = $props['subdomain_cnt'];
    $hp_als = $props['alias_cnt'];
    $hp_mail = $props['mail_cnt'];
    $hp_ftp = $props['ftp_cnt'];
    $hp_sql_db = $props['db_cnt'];
    $hp_sql_user = $props['sqluser_cnt'];
    $hp_traff = $props['traffic'];
    $hp_disk = $props['disk'];
    $hp_backup = $props['allow_backup'];
    $hp_countbackup = $props['disk_countbackup'];
    $hp_dns = $props['allow_dns'];
    $hp_ssl = $props['allow_ssl'];
    $hp_name = $data['name'];
    if ($description == '') {
        $description = '';
    }
    if ($tos == '') {
        $tos = '';
    }
    if ($payment == '') {
        $payment = '';
    }
    if ($value == '') {
        $value = '';
    }
    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") {
        $tpl->assign('ALIAS_EDIT', '');
    }
    if ($rals_max == "-1") {
        $tpl->assign('SUBDOMAIN_EDIT', '');
    }
    if ($rmail_max == "-1") {
        $tpl->assign('MAIL_EDIT', '');
    }
    if ($rftp_max == "-1") {
        $tpl->assign('FTP_EDIT', '');
    }
    if ($rsql_db_max == "-1") {
        $tpl->assign('SQL_DB_EDIT', '');
    }
    if ($rsql_user_max == "-1") {
        $tpl->assign('SQL_USER_EDIT', '');
    }
    $tpl->assign(array('HP_NAME_VALUE' => tohtml($hp_name), 'TR_EDIT_HOSTING_PLAN' => $edit_hp, 'TR_MAX_SUB_LIMITS' => $hp_sub, 'TR_MAX_ALS_VALUES' => $hp_als, 'HP_MAIL_VALUE' => $hp_mail, 'HP_FTP_VALUE' => $hp_ftp, 'HP_SQL_DB_VALUE' => $hp_sql_db, 'HP_SQL_USER_VALUE' => $hp_sql_user, 'HP_TRAFF_VALUE' => $hp_traff, 'HP_DISK_VALUE' => $hp_disk, 'HP_DESCRIPTION_VALUE' => tohtml($description), 'HP_PRICE' => tohtml($price), 'HP_SETUPFEE' => tohtml($setup_fee), 'HP_VALUE' => tohtml($value), 'READONLY' => $readonly, 'DISBLED' => $disabled, 'HP_PAYMENT' => tohtml($payment), 'HP_TOS_VALUE' => tohtml($tos), 'TR_PHP_YES' => $hp_php == '_yes_' ? $cfg->HTML_CHECKED : '', 'TR_PHP_NO' => $hp_php == '_no_' ? $cfg->HTML_CHECKED : '', 'TR_PHPEY' => $hp_phpe === '_yes_' ? $cfg->HTML_CHECKED : '', 'TR_PHPEN' => $hp_phpe === '_no_' ? $cfg->HTML_CHECKED : '', 'TR_CGI_YES' => $hp_cgi == '_yes_' ? $cfg->HTML_CHECKED : '', 'TR_CGI_NO' => $hp_cgi == '_no_' ? $cfg->HTML_CHECKED : '', 'TR_SSL_YES' => $hp_ssl == '_yes_' ? $cfg->HTML_CHECKED : '', 'TR_SSL_NO' => $hp_ssl == '_no_' ? $cfg->HTML_CHECKED : '', 'TR_DNS_YES' => $hp_dns == '_yes_' ? $cfg->HTML_CHECKED : '', 'TR_DNS_NO' => $hp_dns == '_no_' ? $cfg->HTML_CHECKED : '', 'VL_BACKUPD' => $hp_backup == '_dmn_' ? $cfg->HTML_CHECKED : '', 'VL_BACKUPS' => $hp_backup == '_sql_' ? $cfg->HTML_CHECKED : '', 'VL_BACKUPF' => $hp_backup == '_full_' ? $cfg->HTML_CHECKED : '', 'VL_BACKUPN' => $hp_backup == '_no_' ? $cfg->HTML_CHECKED : '', 'TR_BACKUPCOUNT_YES' => $hp_countbackup == '_yes_' ? $cfg->HTML_CHECKED : '', 'TR_BACKUPCOUNT_NO' => $hp_countbackup == '_no_' ? $cfg->HTML_CHECKED : '', 'TR_STATUS_YES' => $status ? $cfg->HTML_CHECKED : '', 'TR_STATUS_NO' => !$status ? $cfg->HTML_CHECKED : ''));
}
Пример #22
0
/**
 * @todo use template loop instead of this hardcoded HTML
 * @param EasySCP_TemplateEngine $tpl
 * @param int $edit_id
 * @param bool $add_mode
 */
function gen_editdns_page($tpl, $edit_id, $add_mode)
{
    $cfg = EasySCP_Registry::get('Config');
    $sql = EasySCP_Registry::get('Db');
    $DNS_allowed_types = array('A', 'AAAA', 'CNAME', 'MX', 'SRV', 'NS');
    $dmn_props = get_domain_default_props($_SESSION['user_id']);
    if ($dmn_props['domain_dns'] != 'yes') {
        not_allowed();
    }
    if ($GLOBALS['add_mode']) {
        $data = null;
        $query = "\n\t\t\tSELECT\n\t\t\t\t'0' AS `alias_id`,\n\t\t\t\t`domain`.`domain_name` AS `domain_name`\n\t\t\tFROM\n\t\t\t\t`domain`\n\t\t\tWHERE\n\t\t\t\t`domain_id` = :domain_id\n\t\t\tUNION\n\t\t\tSELECT\n\t\t\t\t`domain_aliasses`.`alias_id`,\n\t\t\t\t`domain_aliasses`.`alias_name`\n\t\t\tFROM\n\t\t\t\t`domain_aliasses`\n\t\t\tWHERE\n\t\t\t\t`domain_aliasses`.`domain_id` = :domain_id\n\t\t\tAND `status` <> :state\n\t\t";
        $res = exec_query($sql, $query, array('domain_id' => $dmn_props['domain_id'], 'state' => $cfg->ITEM_ORDERED_STATUS));
        $sel = '';
        while ($row = $res->fetchRow()) {
            $sel .= '<option value="' . $row['alias_id'] . '">' . decode_idna($row['domain_name']) . '</option>';
        }
        $tpl->assign(array('SELECT_ALIAS' => $sel, 'ADD_RECORD' => true));
    } else {
        $sql_param = array('record_id' => $edit_id);
        $sql_query = "\n\t\t\tSELECT\n\t\t\t\td.name AS domain_dns,\n\t\t\t\tr.*\n\t\t\tFROM\n\t\t\t\tpowerdns.domains d,\n\t\t\t\tpowerdns.records r\n\t\t\tWHERE\n\t\t\t\tr.id = :record_id\n\t\t\tAND\n\t\t\t\td.id = r.domain_id\n\t\t";
        DB::prepare($sql_query);
        $statement = DB::execute($sql_param, false);
        if ($statement->rowCount() <= 0) {
            return not_allowed();
        }
        $data = $statement->fetch();
    }
    list($name, $address, $addressv6, $srv_name, $srv_proto, $srv_ttl, $srv_prio, $srv_weight, $srv_host, $srv_port, $cname, $plain, $ns) = decode_zone_data($data);
    // Protection against edition (eg. for external mail MX record)
    if (isset($data['protected']) && $data['protected'] == '1') {
        set_page_message(tr('You are not allowed to edit this DNS record!'), 'error');
        not_allowed();
    }
    $dns_type = create_options($DNS_allowed_types, tryPost('type', $data['type']));
    $tpl->assign(array('SELECT_DNS_TYPE' => $dns_type, 'DNS_NAME' => tohtml($name), 'DNS_ADDRESS' => tohtml(tryPost('dns_A_address', $address)), 'DNS_ADDRESS_V6' => tohtml(tryPost('dns_AAAA_address', $addressv6)), 'SELECT_DNS_SRV_PROTOCOL' => create_options(array('tcp', 'udp'), tryPost('srv_proto', $srv_proto)), 'DNS_SRV_NAME' => tohtml(tryPost('dns_srv_name', $srv_name)), 'DNS_SRV_TTL' => tohtml(tryPost('dns_srv_ttl', $srv_ttl)), 'DNS_SRV_PRIO' => tohtml(tryPost('dns_srv_prio', $srv_prio)), 'DNS_SRV_WEIGHT' => tohtml(tryPost('dns_srv_weight', $srv_weight)), 'DNS_SRV_HOST' => tohtml(tryPost('dns_srv_host', $srv_host)), 'DNS_SRV_PORT' => tohtml(tryPost('dns_srv_port', $srv_port)), 'DNS_CNAME' => tohtml(tryPost('dns_cname', $cname)), 'DNS_PLAIN' => tohtml(tryPost('dns_plain_data', $plain)), 'DNS_NS_HOSTNAME' => tohtml(tryPost('dns_ns', $ns)), 'ID' => $edit_id, 'ACTION_MODE' => $add_mode ? 'dns_add.php' : 'dns_edit.php?edit_id=' . $edit_id));
}
Пример #23
0
/**
 * @param EasySCP_TemplateEngine $tpl
 * @param EasySCP_Database $sql
 * @param int $id
 */
function gen_dynamic_page_data($tpl, $sql, $id)
{
    global $domain_id;
    $cfg = EasySCP_Registry::get('Config');
    $dmn_props = get_domain_default_props($_SESSION['user_id']);
    $domain_id = $dmn_props['domain_id'];
    list($mail_acc_cnt) = get_domain_running_mail_acc_cnt($sql, $dmn_props['domain_id']);
    if ($dmn_props['domain_mailacc_limit'] != 0 && $mail_acc_cnt >= $dmn_props['domain_mailacc_limit']) {
        set_page_message(tr('Mail accounts limit reached!'), 'warning');
        user_goto('mail_catchall.php');
    }
    $ok_status = $cfg->ITEM_OK_STATUS;
    $match = array();
    if (preg_match("/(\\d+);(normal|alias|subdom|alssub)/", $id, $match) == 1) {
        $item_id = $match[1];
        $item_type = $match[2];
        if ($item_type === 'normal') {
            $query = "\n\t\t\t\tSELECT\n\t\t\t\t\tt1.`mail_id`, t1.`mail_type`, t2.`domain_name`, t1.`mail_acc`\n\t\t\t\tFROM\n\t\t\t\t\t`mail_users` AS t1,\n\t\t\t\t\t`domain` AS t2\n\t\t\t\tWHERE\n\t\t\t\t\tt1.`domain_id` = ?\n\t\t\t\tAND\n\t\t\t\t\tt2.`domain_id` = ?\n\t\t\t\tAND\n\t\t\t\t\tt1.`sub_id` = '0'\n\t\t\t\tAND\n\t\t\t\t\tt1.`status` = ?\n\t\t\t\tORDER BY\n\t\t\t\t\tt1.`mail_type` DESC, t1.`mail_acc`\n\t\t\t";
            $rs = exec_query($sql, $query, array($item_id, $item_id, $ok_status));
            if ($rs->recordCount() == 0) {
                $tpl->assign(array('FORWARD_MAIL' => $cfg->HTML_CHECKED, 'MAIL_LIST' => '', 'DEFAULT' => 'forward'));
            } else {
                $tpl->assign(array('NORMAL_MAIL' => $cfg->HTML_CHECKED, 'NORMAL_MAIL_CHECK' => 'checked', 'FORWARD_MAIL' => '', 'DEFAULT' => 'normal'));
                while (!$rs->EOF) {
                    $show_mail_acc = decode_idna($rs->fields['mail_acc']);
                    $show_domain_name = decode_idna($rs->fields['domain_name']);
                    $mail_acc = $rs->fields['mail_acc'];
                    $domain_name = $rs->fields['domain_name'];
                    $tpl->append(array('MAIL_ID' => $rs->fields['mail_id'], 'MAIL_ACCOUNT' => tohtml($show_mail_acc . "@" . $show_domain_name), 'MAIL_ACCOUNT_PUNNY' => tohtml($mail_acc . "@" . $domain_name)));
                    $rs->moveNext();
                }
            }
        } else {
            if ($item_type === 'alias') {
                $query = "\n\t\t\t\tSELECT\n\t\t\t\t\tt1.`mail_id`, t1.`mail_type`, t2.`alias_name`, t1.`mail_acc`\n\t\t\t\tFROM\n\t\t\t\t\t`mail_users` AS t1,\n\t\t\t\t\t`domain_aliasses` AS t2\n\t\t\t\tWHERE\n\t\t\t\t\tt1.`sub_id` = t2.`alias_id`\n\t\t\t\tAND\n\t\t\t\t\tt1.`status` = ?\n\t\t\t\tAND\n\t\t\t\t\tt1.`mail_type` LIKE 'alias_%'\n\t\t\t\tAND\n\t\t\t\t\tt2.`alias_id` = ?\n\t\t\t\tORDER BY\n\t\t\t\t\tt1.`mail_type` DESC, t1.`mail_acc`\n\t\t\t";
                $rs = exec_query($sql, $query, array($ok_status, $item_id));
                if ($rs->recordCount() == 0) {
                    $tpl->assign(array('FORWARD_MAIL' => $cfg->HTML_CHECKED, 'MAIL_LIST' => '', 'DEFAULT' => 'forward'));
                } else {
                    $tpl->assign(array('NORMAL_MAIL' => $cfg->HTML_CHECKED, 'NORMAL_MAIL_CHECK' => 'checked', 'FORWARD_MAIL' => '', 'DEFAULT' => 'normal'));
                    while (!$rs->EOF) {
                        $show_mail_acc = decode_idna($rs->fields['mail_acc']);
                        $show_alias_name = decode_idna($rs->fields['alias_name']);
                        $mail_acc = $rs->fields['mail_acc'];
                        $alias_name = $rs->fields['alias_name'];
                        $tpl->append(array('MAIL_ID' => $rs->fields['mail_id'], 'MAIL_ACCOUNT' => tohtml($show_mail_acc . "@" . $show_alias_name), 'MAIL_ACCOUNT_PUNNY' => tohtml($mail_acc . "@" . $alias_name)));
                        $rs->moveNext();
                    }
                }
            } else {
                if ($item_type === 'subdom') {
                    $query = "\n\t\t\t\tSELECT\n\t\t\t\t\tt1.`mail_id`, t1.`mail_type`, CONCAT(t2.`subdomain_name`, '.', t3.`domain_name`) AS subdomain_name, t1.`mail_acc`\n\t\t\t\tFROM\n\t\t\t\t\t`mail_users` AS t1,\n\t\t\t\t\t`subdomain` AS t2,\n\t\t\t\t\t`domain` AS t3\n\t\t\t\tWHERE\n\t\t\t\t\tt1.`sub_id` = t2.`subdomain_id`\n\t\t\t\tAND\n\t\t\t\t\tt2.`domain_id` = t3.`domain_id`\n\t\t\t\tAND\n\t\t\t\t\tt1.`status` = ?\n\t\t\t\tAND\n\t\t\t\t\tt1.`mail_type` LIKE 'subdom_%'\n\t\t\t\tAND\n\t\t\t\t\tt2.`subdomain_id` = ?\n\t\t\t\tORDER BY\n\t\t\t\t\tt1.`mail_type` DESC, t1.`mail_acc`\n\t\t\t";
                    $rs = exec_query($sql, $query, array($ok_status, $item_id));
                    if ($rs->recordCount() == 0) {
                        $tpl->assign(array('FORWARD_MAIL' => $cfg->HTML_CHECKED, 'MAIL_LIST' => '', 'DEFAULT' => 'forward'));
                    } else {
                        $tpl->assign(array('NORMAL_MAIL' => $cfg->HTML_CHECKED, 'NORMAL_MAIL_CHECK' => 'checked', 'FORWARD_MAIL' => '', 'DEFAULT' => 'normal'));
                        while (!$rs->EOF) {
                            $show_mail_acc = decode_idna($rs->fields['mail_acc']);
                            $show_alias_name = decode_idna($rs->fields['subdomain_name']);
                            $mail_acc = $rs->fields['mail_acc'];
                            $alias_name = $rs->fields['subdomain_name'];
                            $tpl->append(array('MAIL_ID' => $rs->fields['mail_id'], 'MAIL_ACCOUNT' => tohtml($show_mail_acc . "@" . $show_alias_name), 'MAIL_ACCOUNT_PUNNY' => tohtml($mail_acc . "@" . $alias_name)));
                            $rs->moveNext();
                        }
                    }
                } else {
                    if ($item_type === 'alssub') {
                        $query = "\n\t\t\t\tSELECT\n\t\t\t\t\tt1.`mail_id`, t1.`mail_type`, CONCAT(t2.`subdomain_alias_name`, '.', t3.`alias_name`) AS subdomain_name, t1.`mail_acc`\n\t\t\t\tFROM\n\t\t\t\t\t`mail_users` AS t1,\n\t\t\t\t\t`subdomain_alias` AS t2,\n\t\t\t\t\t`domain_aliasses` AS t3\n\t\t\t\tWHERE\n\t\t\t\t\tt1.`sub_id` = t2.`subdomain_alias_id`\n\t\t\t\tAND\n\t\t\t\t\tt2.`alias_id` = t3.`alias_id`\n\t\t\t\tAND\n\t\t\t\t\tt1.`status` = ?\n\t\t\t\tAND\n\t\t\t\t\tt1.`mail_type` LIKE 'alssub_%'\n\t\t\t\tAND\n\t\t\t\t\tt2.`subdomain_alias_id` = ?\n\t\t\t\tORDER BY\n\t\t\t\t\tt1.`mail_type` DESC, t1.`mail_acc`\n\t\t\t";
                        $rs = exec_query($sql, $query, array($ok_status, $item_id));
                        if ($rs->recordCount() == 0) {
                            $tpl->assign(array('FORWARD_MAIL' => $cfg->HTML_CHECKED, 'MAIL_LIST' => '', 'DEFAULT' => 'forward'));
                        } else {
                            $tpl->assign(array('NORMAL_MAIL' => $cfg->HTML_CHECKED, 'NORMAL_MAIL_CHECK' => 'checked', 'FORWARD_MAIL' => '', 'DEFAULT' => 'normal'));
                            while (!$rs->EOF) {
                                $show_mail_acc = decode_idna($rs->fields['mail_acc']);
                                $show_alias_name = decode_idna($rs->fields['subdomain_name']);
                                $mail_acc = $rs->fields['mail_acc'];
                                $alias_name = $rs->fields['subdomain_name'];
                                $tpl->append(array('MAIL_ID' => $rs->fields['mail_id'], 'MAIL_ACCOUNT' => tohtml($show_mail_acc . "@" . $show_alias_name), 'MAIL_ACCOUNT_PUNNY' => tohtml($mail_acc . "@" . $alias_name)));
                                $rs->moveNext();
                            }
                        }
                    }
                }
            }
        }
    } else {
        user_goto('mail_catchall.php');
    }
}
Пример #24
0
/**
 * @param EasySCP_TemplateEngine $tpl
 */
function gen_user_table($tpl)
{
    $cfg = EasySCP_Registry::get('Config');
    $sql = EasySCP_Registry::get('Db');
    $query = "\n\t\tSELECT\n\t\t\t`admin_id`, `admin_name`\n\t\tFROM\n\t\t\t`admin`\n\t\tWHERE\n\t\t\t`admin_type` = 'reseller'\n\t\tORDER BY\n\t\t\t`admin_name`\n\t";
    $rs = exec_query($sql, $query);
    if ($rs->recordCount() == 0) {
        set_page_message(tr('Reseller or user list is empty!'), 'info');
        user_goto('manage_users.php');
    }
    $reseller_id = $rs->fields['admin_id'];
    $all_resellers = array();
    while (!$rs->EOF) {
        if (isset($_POST['uaction']) && $_POST['uaction'] === 'change_src' && (isset($_POST['src_reseller']) && $_POST['src_reseller'] == $rs->fields['admin_id'])) {
            $selected = $cfg->HTML_SELECTED;
            $reseller_id = $_POST['src_reseller'];
        } else {
            if (isset($_POST['uaction']) && $_POST['uaction'] === 'move_user' && (isset($_POST['dst_reseller']) && $_POST['dst_reseller'] == $rs->fields['admin_id'])) {
                $selected = $cfg->HTML_SELECTED;
                $reseller_id = $_POST['dst_reseller'];
            } else {
                $selected = '';
            }
        }
        $all_resellers[] = $rs->fields['admin_id'];
        $tpl->append(array('SRC_RSL_OPTION' => tohtml($rs->fields['admin_name']), 'SRC_RSL_VALUE' => $rs->fields['admin_id'], 'SRC_RSL_SELECTED' => $selected));
        $tpl->append(array('DST_RSL_OPTION' => tohtml($rs->fields['admin_name']), 'DST_RSL_VALUE' => $rs->fields['admin_id'], 'DST_RSL_SELECTED' => ''));
        $rs->moveNext();
    }
    if (isset($_POST['src_reseller']) && $_POST['src_reseller'] == 0) {
        $selected = $cfg->HTML_SELECTED;
        $reseller_id = 0;
    } else {
        $selected = '';
    }
    $tpl->append(array('SRC_RSL_OPTION' => tr("N/A"), 'SRC_RSL_VALUE' => 0, 'SRC_RSL_SELECTED' => $selected));
    if ($reseller_id === 0) {
        $query = "\n\t\t\tSELECT\n\t\t\t\t`admin_id`, `admin_name`\n\t\t\tFROM\n\t\t\t\t`admin`\n\t\t\tWHERE\n\t\t\t\t`admin_type` = 'user'\n\t\t\tAND\n\t\t\t\t`created_by` NOT IN (?)\n\t\t\tORDER BY\n\t\t\t\t`admin_name`\n\t\t";
        $not_in = implode(',', $all_resellers);
        $rs = exec_query($sql, $query, $not_in);
    } else {
        $query = "\n\t\t\tSELECT\n\t\t\t\t`admin_id`, `admin_name`\n\t\t\tFROM\n\t\t\t\t`admin`\n\t\t\tWHERE\n\t\t\t\t`admin_type` = 'user'\n\t\t\tAND\n\t\t\t\t`created_by` = ?\n\t\t\tORDER BY\n\t\t\t\t`admin_name`\n\t\t";
        $rs = exec_query($sql, $query, $reseller_id);
    }
    if ($rs->recordCount() == 0) {
        set_page_message(tr('User list is empty!'), 'info');
        $tpl->assign('RESELLER_LIST', '');
    } else {
        $i = 0;
        while (!$rs->EOF) {
            $admin_id = $rs->fields['admin_id'];
            $admin_id_var_name = 'admin_id_' . $admin_id;
            $show_admin_name = decode_idna($rs->fields['admin_name']);
            $tpl->append(array('NUMBER' => $i + 1, 'USER_NAME' => tohtml($show_admin_name), 'CKB_NAME' => $admin_id_var_name));
            $rs->moveNext();
            $i++;
        }
    }
}
Пример #25
0
/**
 * @param EasySCP_TemplateEngine $tpl
 * @return void
 */
function gen_server_trafic($tpl)
{
    $sql_query = "\n\t\tSELECT\n\t\t\tstraff_max, straff_warn\n\t\tFROM\n\t\t\tstraff_settings;\n\t";
    $row = DB::query($sql_query, true);
    $straff_max = $row['straff_max'] * 1024 * 1024;
    $straff_warn = $row['straff_warn'] * 1024 * 1024;
    $sql_param = array(':fdofmnth' => mktime(0, 0, 0, date("m"), 1, date("Y")), ':ldofmnth' => mktime(1, 0, 0, date("m") + 1, 0, date("Y")));
    $query = "\n\t\tSELECT\n\t\t\tIFNULL((SUM(bytes_in) + SUM(bytes_out)), 0) AS traffic\n\t\tFROM\n\t\t\tserver_traffic\n\t\tWHERE\n\t\t\ttraff_time > :fdofmnth\n\t\tAND\n\t\t\ttraff_time < :ldofmnth;\n\t";
    DB::prepare($sql_query);
    $row = DB::execute($sql_param, true);
    $traff = isset($row['traffic']) ? $row['traffic'] : 0;
    $mtraff = sprintf("%.2f", $traff);
    if ($straff_max == 0) {
        $pr = 0;
    } else {
        $pr = $traff / $straff_max * 100;
    }
    if (($straff_max != 0 || $straff_max != '') && $mtraff > $straff_max) {
        $tpl->assign(array('TR_TRAFFIC_WARNING' => tr('You are exceeding your traffic limit!')));
    } else {
        if (($straff_warn != 0 || $straff_warn != '') && $mtraff > $straff_warn) {
            $tpl->assign(array('TR_TRAFFIC_WARNING' => tr('You traffic limit will be reached soon!')));
        } else {
            $tpl->assign('TRAFF_WARN', '');
        }
    }
    $bar_value = calc_bar_value($traff, $straff_max, 400);
    $percent = 0;
    if ($straff_max == 0) {
        $traff_msg = tr('%1$d%% [%2$s of unlimited]', $pr, sizeit($mtraff));
    } else {
        $traff_msg = tr('%1$d%% [%2$s of %3$s]', $pr, sizeit($mtraff), sizeit($straff_max));
        $percent = $traff / $straff_max * 100 < 99.7 ? $traff / $straff_max * 100 : 99.7;
    }
    $tpl->assign(array('TRAFFIC_WARNING' => $traff_msg, 'BAR_VALUE' => $bar_value, 'TRAFFIC_PERCENT' => $percent));
}
Пример #26
0
/**
 * Show user data
 * @param EasySCP_TemplateEngine $tpl
 */
function gen_edituser_page($tpl)
{
    global $dmn_user_name, $user_email, $customer_id, $first_name, $last_name, $firm, $zip, $gender, $city, $state, $country, $street_one, $street_two, $phone, $fax;
    $cfg = EasySCP_Registry::get('Config');
    if ($customer_id == NULL) {
        $customer_id = '';
    }
    // Fill in the fields
    $tpl->assign(array('VL_USERNAME' => tohtml(decode_idna($dmn_user_name)), 'VL_MAIL' => empty($user_email) ? '' : tohtml($user_email), 'VL_USR_ID' => empty($customer_id) ? '' : tohtml($customer_id), 'VL_USR_NAME' => empty($first_name) ? '' : tohtml($first_name), 'VL_LAST_USRNAME' => empty($last_name) ? '' : tohtml($last_name), 'VL_USR_FIRM' => empty($firm) ? '' : tohtml($firm), 'VL_USR_POSTCODE' => empty($zip) ? '' : tohtml($zip), 'VL_USRCITY' => empty($city) ? '' : tohtml($city), 'VL_USRSTATE' => empty($state) ? '' : tohtml($state), 'VL_COUNTRY' => empty($country) ? '' : tohtml($country), 'VL_STREET1' => empty($street_one) ? '' : tohtml($street_one), 'VL_STREET2' => empty($street_two) ? '' : tohtml($street_two), 'VL_MALE' => $gender == 'M' ? $cfg->HTML_SELECTED : '', 'VL_FEMALE' => $gender == 'F' ? $cfg->HTML_SELECTED : '', 'VL_UNKNOWN' => $gender == 'U' ? $cfg->HTML_SELECTED : '', 'VL_PHONE' => empty($phone) ? '' : tohtml($phone), 'VL_FAX' => empty($fax) ? '' : tohtml($fax)));
    generate_ip_list($tpl, $_SESSION['user_id']);
}
Пример #27
0
/**
 * @param EasySCP_TemplateEngine $tpl
 */
function generate_page($tpl)
{
    $sql = EasySCP_Registry::get('Db');
    global $month, $year, $day;
    $all[0] = 0;
    $all[1] = 0;
    $all[2] = 0;
    $all[3] = 0;
    $all[4] = 0;
    $all[5] = 0;
    $all[6] = 0;
    $all[7] = 0;
    $all_other_in = 0;
    $all_other_out = 0;
    $ftm = mktime(0, 0, 0, $month, $day, $year);
    $ltm = mktime(0, 0, 0, $month, $day + 1, $year);
    $query = "\n\t\tSELECT\n\t\t\tCOUNT(`bytes_in`) AS cnt\n\t\tFROM\n\t\t\t`server_traffic`\n\t\tWHERE\n\t\t\t`traff_time` > ? AND `traff_time` <= ?\n\t";
    $rs = exec_query($sql, $query, array($ftm, $ltm));
    $dnum = $rs->fields['cnt'];
    $query = "\n\t\tSELECT\n\t\t\t`traff_time` AS ttime,\n\t\t\t`bytes_in` AS sbin,\n\t\t\t`bytes_out` AS sbout,\n\t\t\t`bytes_mail_in` AS smbin,\n\t\t\t`bytes_mail_out` AS smbout,\n\t\t\t`bytes_pop_in` AS spbin,\n\t\t\t`bytes_pop_out` AS spbout,\n\t\t\t`bytes_web_in` AS swbin,\n\t\t\t`bytes_web_out` AS swbout\n\t\tFROM\n\t\t\t`server_traffic`\n\t\tWHERE\n\t\t\t`traff_time` > ? AND `traff_time` <= ?\n\t";
    $rs1 = exec_query($sql, $query, array($ftm, $ltm));
    if ($dnum != 0) {
        for ($i = 0; $i < $dnum; $i++) {
            // make it in kb mb or bytes :)
            $ttime = date('H:i', $rs1->fields['ttime']);
            // make other traffic
            $other_in = $rs1->fields['sbin'] - ($rs1->fields['swbin'] + $rs1->fields['smbin'] + $rs1->fields['spbin']);
            $other_out = $rs1->fields['sbout'] - ($rs1->fields['swbout'] + $rs1->fields['smbout'] + $rs1->fields['spbout']);
            $tpl->append(array('HOUR' => $ttime, 'WEB_IN' => sizeit($rs1->fields['swbin']), 'WEB_OUT' => sizeit($rs1->fields['swbout']), 'SMTP_IN' => sizeit($rs1->fields['smbin']), 'SMTP_OUT' => sizeit($rs1->fields['smbout']), 'POP_IN' => sizeit($rs1->fields['spbin']), 'POP_OUT' => sizeit($rs1->fields['spbout']), 'OTHER_IN' => sizeit($other_in), 'OTHER_OUT' => sizeit($other_out), 'ALL_IN' => sizeit($rs1->fields['sbin']), 'ALL_OUT' => sizeit($rs1->fields['sbout']), 'ALL' => sizeit($rs1->fields['sbin'] + $rs1->fields['sbout'])));
            $all[0] = $all[0] + $rs1->fields['swbin'];
            $all[1] = $all[1] + $rs1->fields['swbout'];
            $all[2] = $all[2] + $rs1->fields['smbin'];
            $all[3] = $all[3] + $rs1->fields['smbout'];
            $all[4] = $all[4] + $rs1->fields['spbin'];
            $all[5] = $all[5] + $rs1->fields['spbout'];
            $all[6] = $all[6] + $rs1->fields['sbin'];
            $all[7] = $all[7] + $rs1->fields['sbout'];
            $rs1->moveNext();
        }
        // end for
        $all_other_in = $all[6] - ($all[0] + $all[2] + $all[4]);
        $all_other_out = $all[7] - ($all[1] + $all[3] + $all[5]);
    }
    $tpl->assign(array('WEB_IN_ALL' => sizeit($all[0]), 'WEB_OUT_ALL' => sizeit($all[1]), 'SMTP_IN_ALL' => sizeit($all[2]), 'SMTP_OUT_ALL' => sizeit($all[3]), 'POP_IN_ALL' => sizeit($all[4]), 'POP_OUT_ALL' => sizeit($all[5]), 'OTHER_IN_ALL' => sizeit($all_other_in), 'OTHER_OUT_ALL' => sizeit($all_other_out), 'ALL_IN_ALL' => sizeit($all[6]), 'ALL_OUT_ALL' => sizeit($all[7]), 'ALL_ALL' => sizeit($all[6] + $all[7])));
}
Пример #28
0
/**
 * Check input data
 * @param EasySCP_TemplateEngine $tpl
 * @param int $alias_id
 */
function check_fwd_data($tpl, $alias_id)
{
    $sql = EasySCP_Registry::get('Db');
    $cfg = EasySCP_Registry::get('Config');
    $forward_url = strtolower(clean_input($_POST['forward']));
    // unset errors
    $ed_error = '_off_';
    // NXW: Unused variable so...
    // $admin_login = '';
    if (isset($_POST['status']) && $_POST['status'] == 1) {
        $forward_prefix = clean_input($_POST['forward_prefix']);
        if (substr_count($forward_url, '.') <= 2) {
            $ret = validates_dname($forward_url);
        } else {
            $ret = validates_dname($forward_url, true);
        }
        if (!$ret) {
            $ed_error = tr("Wrong domain part in forward URL!");
        } else {
            $forward_url = encode_idna($forward_prefix . $forward_url);
        }
        $check_en = $cfg->HTML_CHECKED;
        $check_dis = '';
        $tpl->assign(array('FORWARD' => tohtml($forward_url), 'HTTP_YES' => $forward_prefix === 'http://' ? $cfg->HTML_SELECTED : '', 'HTTPS_YES' => $forward_prefix === 'https://' ? $cfg->HTML_SELECTED : '', 'FTP_YES' => $forward_prefix === 'ftp://' ? $cfg->HTML_SELECTED : '', 'CHECK_EN' => $check_en, 'CHECK_DIS' => $check_dis, 'DISABLE_FORWARD' => '', 'READONLY_FORWARD' => ''));
    } else {
        $check_en = $cfg->HTML_CHECKED;
        $check_dis = '';
        $forward_url = 'no';
        $tpl->assign(array('READONLY_FORWARD' => $cfg->HTML_READONLY, 'DISABLE_FORWARD' => $cfg->HTML_DISABLED, 'CHECK_EN' => $check_en, 'CHECK_DIS' => $check_dis));
    }
    if ($ed_error === '_off_') {
        $query = "\n\t\t\tUPDATE\n\t\t\t\t`domain_aliasses`\n\t\t\tSET\n\t\t\t\t`url_forward` = ?,\n\t\t\t\t`status` = ?\n\t\t\tWHERE\n\t\t\t\t`alias_id` = ?\n\t\t";
        exec_query($sql, $query, array($forward_url, $cfg->ITEM_CHANGE_STATUS, $alias_id));
        $query = "\n\t\t\tUPDATE\n\t\t\t\t`subdomain_alias`\n\t\t\tSET\n\t\t\t\t`status` = ?\n\t\t\tWHERE\n\t\t\t\t`alias_id` = ?\n\t\t";
        exec_query($sql, $query, array($cfg->ITEM_CHANGE_STATUS, $alias_id));
        send_request('110 DOMAIN alias ' . $alias_id);
        // NXW: oh my god... Should be review...
        /*
        $admin_login = $_SESSION['user_logged'];
        write_log("$admin_login: changes domain alias forward: " . $rs->fields['t1.alias_name']);
        */
        unset($_SESSION['edit_ID']);
        $tpl->assign('MESSAGE', "");
        return true;
    } else {
        $tpl->assign('MESSAGE', $ed_error);
        return false;
    }
}
Пример #29
0
/**
 * @param EasySCP_TemplateEngine $tpl
 * @param string $search_for
 * @param string $search_common
 * @param string $search_status
 */
function gen_admin_domain_search_options($tpl, $search_for, $search_common, $search_status)
{
    $cfg = EasySCP_Registry::get('Config');
    if ($search_for == 'n/a' && $search_common == 'n/a' && $search_status == 'n/a') {
        // we have no search and let's generate search fields empty
        $domain_selected = $cfg->HTML_SELECTED;
        $customerid_selected = '';
        $lastname_selected = '';
        $company_selected = '';
        $city_selected = '';
        $state_selected = '';
        $country_selected = '';
        $all_selected = $cfg->HTML_SELECTED;
        $ok_selected = '';
        $suspended_selected = '';
    }
    if ($search_common == 'domain_name') {
        $domain_selected = $cfg->HTML_SELECTED;
        $customerid_selected = '';
        $lastname_selected = '';
        $company_selected = '';
        $city_selected = '';
        $state_selected = '';
        $country_selected = '';
    } elseif ($search_common == 'customer_id') {
        $domain_selected = '';
        $customerid_selected = $cfg->HTML_SELECTED;
        $lastname_selected = '';
        $company_selected = '';
        $city_selected = '';
        $state_selected = '';
        $country_selected = '';
    } elseif ($search_common == 'lname') {
        $domain_selected = '';
        $customerid_selected = '';
        $lastname_selected = $cfg->HTML_SELECTED;
        $company_selected = '';
        $city_selected = '';
        $state_selected = '';
        $country_selected = '';
    } elseif ($search_common === 'firm') {
        $domain_selected = '';
        $customerid_selected = '';
        $lastname_selected = '';
        $company_selected = $cfg->HTML_SELECTED;
        $city_selected = '';
        $state_selected = '';
        $country_selected = '';
    } elseif ($search_common == 'city') {
        $domain_selected = '';
        $customerid_selected = '';
        $lastname_selected = '';
        $company_selected = '';
        $city_selected = $cfg->HTML_SELECTED;
        $state_selected = '';
        $country_selected = '';
    } elseif ($search_common == 'state') {
        $domain_selected = '';
        $customerid_selected = '';
        $lastname_selected = '';
        $company_selected = '';
        $city_selected = '';
        $state_selected = $cfg->HTML_SELECTED;
        $country_selected = '';
    } elseif ($search_common == 'country') {
        $domain_selected = '';
        $customerid_selected = '';
        $lastname_selected = '';
        $company_selected = '';
        $city_selected = '';
        $state_selected = '';
        $country_selected = $cfg->HTML_SELECTED;
    }
    if ($search_status == 'all') {
        $all_selected = $cfg->HTML_SELECTED;
        $ok_selected = '';
        $suspended_selected = '';
    } elseif ($search_status == 'ok') {
        $all_selected = '';
        $ok_selected = $cfg->HTML_SELECTED;
        $suspended_selected = '';
    } elseif ($search_status == 'disabled') {
        $all_selected = '';
        $ok_selected = '';
        $suspended_selected = $cfg->HTML_SELECTED;
    }
    if ($search_for == 'n/a' || $search_for === '') {
        $tpl->assign(array('SEARCH_FOR' => ''));
    } else {
        $tpl->assign(array('SEARCH_FOR' => $search_for));
    }
    $tpl->assign(array('M_DOMAIN_NAME' => tr('Domain name'), 'M_CUSTOMER_ID' => tr('Customer ID'), 'M_LAST_NAME' => tr('Last name'), 'M_COMPANY' => tr('Company'), 'M_CITY' => tr('City'), 'M_STATE' => tr('State/Province'), 'M_COUNTRY' => tr('Country'), 'M_ALL' => tr('All'), 'M_OK' => tr('OK'), 'M_SUSPENDED' => tr('Suspended'), 'M_ERROR' => tr('Error'), 'M_DOMAIN_NAME_SELECTED' => $domain_selected, 'M_CUSTOMER_ID_SELECTED' => $customerid_selected, 'M_LAST_NAME_SELECTED' => $lastname_selected, 'M_COMPANY_SELECTED' => $company_selected, 'M_CITY_SELECTED' => $city_selected, 'M_STATE_SELECTED' => $state_selected, 'M_COUNTRY_SELECTED' => $country_selected, 'M_ALL_SELECTED' => $all_selected, 'M_OK_SELECTED' => $ok_selected, 'M_SUSPENDED_SELECTED' => $suspended_selected));
}
Пример #30
0
/**
 * Show page with initial data fields
 * @param EasySCP_TemplateEngine $tpl
 */
function get_init_au2_page($tpl)
{
    global $hp_name, $hp_php, $hp_phpe, $hp_cgi, $hp_ssl;
    global $hp_sub, $hp_als, $hp_mail;
    global $hp_ftp, $hp_sql_db, $hp_sql_user;
    global $hp_traff, $hp_disk, $hp_countbackup, $hp_backup, $hp_dns;
    $cfg = EasySCP_Registry::get('Config');
    $tpl->assign(array('VL_TEMPLATE_NAME' => tohtml($hp_name), 'MAX_DMN_CNT' => '', 'MAX_SUBDMN_CNT' => $hp_sub, 'MAX_DMN_ALIAS_CNT' => $hp_als, 'MAX_MAIL_CNT' => $hp_mail, 'MAX_FTP_CNT' => $hp_ftp, 'MAX_SQL_CNT' => $hp_sql_db, 'VL_MAX_SQL_USERS' => $hp_sql_user, 'VL_MAX_TRAFFIC' => $hp_traff, 'VL_MAX_DISK_USAGE' => $hp_disk, 'VL_PHPY' => $hp_php === '_yes_' ? $cfg->HTML_CHECKED : '', 'VL_PHPN' => $hp_php === '_no_' ? $cfg->HTML_CHECKED : '', 'VL_PHPEY' => $hp_phpe === '_yes_' ? $cfg->HTML_CHECKED : '', 'VL_PHPEN' => $hp_phpe === '_no_' ? $cfg->HTML_CHECKED : '', 'VL_CGIY' => $hp_cgi === '_yes_' ? $cfg->HTML_CHECKED : '', 'VL_CGIN' => $hp_cgi === '_no_' ? $cfg->HTML_CHECKED : '', 'VL_SSLY' => $hp_ssl === '_yes_' ? $cfg->HTML_CHECKED : '', 'VL_SSLN' => $hp_ssl === '_no_' ? $cfg->HTML_CHECKED : '', 'VL_BACKUPD' => $hp_backup === '_dmn_' ? $cfg->HTML_CHECKED : '', 'VL_BACKUPS' => $hp_backup === '_sql_' ? $cfg->HTML_CHECKED : '', 'VL_BACKUPF' => $hp_backup === '_full_' ? $cfg->HTML_CHECKED : '', 'VL_BACKUPN' => $hp_backup === '_no_' ? $cfg->HTML_CHECKED : '', 'TR_BACKUPCOUNT_YES' => $hp_countbackup == '_yes_' ? $cfg->HTML_CHECKED : '', 'TR_BACKUPCOUNT_NO' => $hp_countbackup == '_no_' ? $cfg->HTML_CHECKED : '', 'VL_DNSY' => $hp_dns === '_yes_' ? $cfg->HTML_CHECKED : '', 'VL_DNSN' => $hp_dns === '_no_' ? $cfg->HTML_CHECKED : ''));
}