/** * Generates databases list * * @param iMSCP_pTemplate $tpl Template engine * @param int $dmnId Domain unique identifier * @return void */ function client_databasesList($tpl, $dmnId) { $stmt = exec_query('SELECT sqld_id, sqld_name FROM sql_database WHERE domain_id = ? ORDER BY sqld_name ', $dmnId); if (!$stmt->rowCount()) { set_page_message(tr('You do not have databases.'), 'static_info'); $tpl->assign('SQL_DATABASES_USERS_LIST', ''); } else { while ($row = $stmt->fetchRow(PDO::FETCH_ASSOC)) { $tpl->assign(array('DB_ID' => $row['sqld_id'], 'DB_NAME' => tohtml($row['sqld_name']), 'DB_NAME_JS' => tojs($row['sqld_name']))); _client_generateDatabaseSqlUserList($tpl, $row['sqld_id']); $tpl->parse('SQL_DATABASES_LIST', '.sql_databases_list'); } } }
/** * @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(); } } }
/*********************************************************************************************************************** * Main */ iMSCP_Events_Aggregator::getInstance()->dispatch(iMSCP_Events::onClientScriptStart); check_login('user'); customerHasFeature('ftp') or showBadRequestErrorPage(); if (isset($_GET['id'])) { $userid = clean_input($_GET['id']); if (who_owns_this($userid, 'ftpuser') != $_SESSION['user_id']) { showBadRequestErrorPage(); } $stmt = exec_query("SELECT `domain_name` FROM `domain` WHERE`domain_admin_id` = ?", $_SESSION['user_id']); $mainDomainName = $stmt->fields['domain_name']; if (!empty($_POST)) { if (updateFtpAccount($userid, $mainDomainName)) { redirectTo('ftp_accounts.php'); } } $tpl = new iMSCP_pTemplate(); $tpl->define_dynamic(array('layout' => 'shared/layouts/ui.tpl', 'page' => 'client/ftp_edit.tpl', 'page_message' => 'layout')); $tpl->assign(array('TR_PAGE_TITLE' => tr('Client / FTP / Overview / Edit FTP Account'), 'TR_FTP_DIRECTORIES' => tojs('Ftp directories'), 'TR_CLOSE' => tojs(tr('Close')), 'TR_FTP_USER_DATA' => tr('Ftp account data'), 'TR_USERNAME' => tr('Username'), 'TR_PASSWORD' => tr('Password'), 'TR_PASSWORD_REPEAT' => tr('Repeat password'), 'TR_HOME_DIR' => tr('Home directory'), 'CHOOSE_DIR' => tr('Choose dir'), 'TR_CHANGE' => tr('Update'), 'TR_CANCEL' => tr('Cancel'))); generatePageData($tpl, $userid, $mainDomainName); generateNavigation($tpl); generatePageMessage($tpl); $tpl->parse('LAYOUT_CONTENT', 'page'); iMSCP_Events_Aggregator::getInstance()->dispatch(iMSCP_Events::onClientScriptEnd, array('templateEngine' => $tpl)); $tpl->prnt(); unsetMessages(); } else { showBadRequestErrorPage(); }
/** * Helper function to generate a user list * * @param iMSCP_pTemplate $tpl iMSCP_pTemplate instance * @return void */ function gen_user_list($tpl) { /** @var $cfg iMSCP_Config_Handler_File */ $cfg = iMSCP_Registry::get('config'); $startIndex = 0; $rowsPerPage = $cfg['DOMAIN_ROWS_PER_PAGE']; if (isset($_GET['psi']) && $_GET['psi'] == 'last') { if (isset($_SESSION['search_page'])) { $_GET['psi'] = $_SESSION['search_page']; } else { unset($_GET['psi']); } } if (isset($_GET['psi'])) { $startIndex = $_GET['psi']; } // Search request generated ? if (isset($_POST['uaction']) && !empty($_POST['uaction'])) { $_SESSION['search_for'] = clean_input($_POST['search_for']); $_SESSION['search_common'] = $_POST['search_common']; $_SESSION['search_status'] = $_POST['search_status']; $startIndex = 0; } elseif (isset($_SESSION['search_for']) && !isset($_GET['psi'])) { // He have not got scroll through patient records unset($_SESSION['search_for']); unset($_SESSION['search_common']); unset($_SESSION['search_status']); } $searchQuery = $countQuery = ''; if (isset($_SESSION['search_for'])) { gen_admin_domain_query($searchQuery, $countQuery, $startIndex, $rowsPerPage, $_SESSION['search_for'], $_SESSION['search_common'], $_SESSION['search_status']); gen_admin_domain_search_options($tpl, $_SESSION['search_for'], $_SESSION['search_common'], $_SESSION['search_status']); $stmt = exec_query($countQuery); } else { gen_admin_domain_query($searchQuery, $countQuery, $startIndex, $rowsPerPage, 'n/a', 'n/a', 'n/a'); gen_admin_domain_search_options($tpl, 'n/a', 'n/a', 'n/a'); $stmt = exec_query($countQuery); } $recordCount = $stmt->fields['cnt']; $stmt = execute_query($searchQuery); if (!$stmt->rowCount()) { if (isset($_SESSION['search_for'])) { $tpl->assign(array('USR_MESSAGE' => tr('No records found matching the search criteria.'), 'USR_LIST' => '', 'SCROLL_PREV' => '', 'SCROLL_NEXT' => '', 'TR_VIEW_DETAILS' => tr('view aliases'), 'SHOW_DETAILS' => 'show')); unset($_SESSION['search_for']); unset($_SESSION['search_common']); unset($_SESSION['search_status']); } else { $tpl->assign(array('SEARCH_FORM' => '', 'USR_MESSAGE' => tr('No customer accounts found.'), 'USR_LIST' => '', 'SCROLL_PREV' => '', 'SCROLL_NEXT' => '', 'TR_VIEW_DETAILS' => tr('view aliases'), 'SHOW_DETAILS' => 'show')); } $tpl->parse('USR_MESSAGE', 'usr_message'); } else { $prevSi = $startIndex - $rowsPerPage; if ($startIndex == 0) { $tpl->assign('SCROLL_PREV', ''); } else { $tpl->assign(array('SCROLL_PREV_GRAY' => '', 'PREV_PSI' => $prevSi)); } $nextSi = $startIndex + $rowsPerPage; if ($nextSi + 1 > $recordCount) { $tpl->assign('SCROLL_NEXT', ''); } else { $tpl->assign(array('SCROLL_NEXT_GRAY' => '', 'NEXT_PSI' => $nextSi)); } $tpl->assign(array('TR_USR_USERNAME' => tr('Username'), 'TR_USR_CREATED_BY' => tr('Created by'), 'TR_USR_ACTIONS' => tr('Actions'), 'TR_USER_STATUS' => tr('Status'), 'TR_DETAILS' => tr('Details'))); while ($row = $stmt->fetchRow(PDO::FETCH_ASSOC)) { // user status icon $domainCreatedBy = $row['created_by']; $stmt2 = exec_query('SELECT admin_name, admin_status FROM admin WHERE admin_id = ?', $domainCreatedBy); if (!isset($stmt2->fields['admin_name'])) { $createdByName = tr('N/A'); } else { $createdByName = $stmt2->fields['admin_name']; } $tpl->assign(array('USR_DELETE_SHOW' => '', 'USER_ID' => $row['admin_id'], 'DOMAIN_ID' => $row['domain_id'], 'TR_DELETE' => tr('Delete'), 'URL_DELETE_USR' => 'user_delete.php?domain_id=' . $row['domain_id'], 'TR_CHANGE_USER_INTERFACE' => tr('Switch to user interface'), 'GO_TO_USER_INTERFACE' => tr('Switch'), 'URL_CHANGE_INTERFACE' => 'change_user_interface.php?to_id=' . $row['domain_admin_id'], 'USR_USERNAME' => tohtml($row['domain_name']), 'TR_EDIT_DOMAIN' => tr('Edit domain'), 'TR_EDIT_USR' => tr('Edit user'))); $tpl->parse('USR_DELETE_LINK', 'usr_delete_link'); if ($row['admin_status'] == 'ok' && $row['domain_status'] == 'ok') { $status = 'ok'; $statusTooltip = tr('Click to deactivate'); $statusTxt = translate_dmn_status($row['domain_status']); $statusBool = true; $canChange = true; } elseif ($row['domain_status'] == 'disabled') { $status = 'disabled'; $statusTooltip = tr('Click to activate'); $statusTxt = translate_dmn_status($row['domain_status']); $statusBool = false; $canChange = true; } elseif ($row['domain_status'] == 'toadd' || $row['domain_status'] == 'torestore' || $row['domain_status'] == 'tochange' || $row['domain_status'] == 'toenable' || $row['domain_status'] == 'todisable' || $row['domain_status'] == 'todelete') { $status = 'reload'; $statusTxt = $statusTooltip = translate_dmn_status($row['admin_status'] != 'ok' ? $row['admin_status'] : $row['domain_status']); $statusBool = false; $canChange = false; } else { $status = 'error'; $statusTooltip = tr('An unexpected error occurred. Go to the debugger interface for more details.'); $statusTxt = translate_dmn_status($row['admin_status'] != 'ok' ? $row['admin_status'] : $row['domain_status']); $statusBool = false; $canChange = false; } $tpl->assign(array('STATUS' => $status, 'STATUS_TOOLTIP' => $statusTooltip, 'TR_STATUS' => $statusTxt)); if ($canChange) { $tpl->assign('DOMAIN_STATUS_NOCHANGE', ''); $tpl->parse('DOMAIN_STATUS_CHANGE', 'domain_status_change'); } else { $tpl->assign('DOMAIN_STATUS_CHANGE', ''); $tpl->parse('DOMAIN_STATUS_NOCHANGE', 'domain_status_nochange'); } $adminName = decode_idna($row['domain_name']); $domainCreated = $row['domain_created']; if ($domainCreated == 0) { $domainCreated = tr('N/A'); } else { $date_formt = $cfg['DATE_FORMAT']; $domainCreated = date($date_formt, $domainCreated); } $domainExpires = $row['domain_expires']; if ($domainExpires == 0) { $domainExpires = tr('Not Set'); } else { $date_formt = $cfg['DATE_FORMAT']; $domainExpires = date($date_formt, $domainExpires); } if ($statusBool == false) { // reload $tpl->assign('USR_STATUS_RELOAD_TRUE', ''); $tpl->assign('USR_USERNAME', tohtml($adminName)); $tpl->parse('USR_STATUS_RELOAD_FALSE', 'usr_status_reload_false'); } else { $tpl->assign('USR_STATUS_RELOAD_FALSE', ''); $tpl->assign('USR_USERNAME', tohtml($adminName)); $tpl->parse('USR_STATUS_RELOAD_TRUE', 'usr_status_reload_true'); } $tpl->assign(array('USER_CREATED_ON' => tohtml($domainCreated), 'USER_EXPIRES_ON' => $domainExpires, 'USR_CREATED_BY' => tohtml($createdByName), 'USR_OPTIONS' => '', 'URL_EDIT_USR' => 'admin_edit.php?edit_id=' . $row['domain_admin_id'], 'TR_MESSAGE_DELETE' => tojs(tr('Are you sure you want to delete %s?', '%s')))); gen_domain_details($tpl, $row['domain_id']); $tpl->parse('USR_ITEM', '.usr_item'); } $tpl->parse('USR_LIST', 'usr_list'); $tpl->assign('USR_MESSAGE', ''); } }
if (isset($_REQUEST['action'])) { $action = clean_input($_REQUEST['action']); if (isset($_REQUEST['admin_id']) && $_REQUEST['admin_id'] != '') { $customerId = intval($_REQUEST['admin_id']); switch ($action) { case 'activate': opendkim_activate($customerId); break; case 'deactivate': opendkim_deactivate($customerId); break; default: showBadRequestErrorPage(); } redirectTo('opendkim.php'); } else { showBadRequestErrorPage(); } } $tpl = new TemplateEngine(); $tpl->define_dynamic(array('layout' => 'shared/layouts/ui.tpl', 'page' => '../../plugins/OpenDKIM/themes/default/view/reseller/opendkim.tpl', 'page_message' => 'layout', 'select_list' => 'page', 'select_item' => 'select_list', 'customer_list' => 'page', 'customer_item' => 'customer_list', 'key_item' => 'customer_item', 'scroll_prev_gray' => 'customer_list', 'scroll_prev' => 'customer_list', 'scroll_next_gray', 'customer_list', 'scroll_next' => 'customer_list')); $tpl->assign(array('TR_PAGE_TITLE' => tr('Customers / OpenDKIM'), 'TR_SELECT_NAME' => tr('Select a customer'), 'TR_ACTIVATE_ACTION' => tr('Activate OpenDKIM for this customer'), 'TR_DOMAIN_NAME' => tr('Domain Name'), 'TR_DOMAIN_KEY' => tr('OpenDKIM domain key'), 'TR_STATUS' => tr('Status'), 'TR_DNS_NAME' => tr('Name'), 'DEACTIVATE_DOMAIN_ALERT' => tojs(tr('Are you sure you want to deactivate OpenDKIM for this customer?')), 'TR_PREVIOUS' => tr('Previous'), 'TR_NEXT' => tr('Next'))); generateNavigation($tpl); opendkim_generatePage($tpl); generatePageMessage($tpl); $tpl->parse('LAYOUT_CONTENT', 'page'); EventManager::getInstance()->dispatch(Events::onResellerScriptEnd, array('templateEngine' => $tpl)); $tpl->prnt(); } else { showBadRequestErrorPage(); }
$grp_selected = ''; } } $tpl->assign(array('GROUP_VALUE' => $rs->fields['id'], 'GROUP_LABEL' => tohtml($rs->fields['ugroup']), 'GROUP_SELECTED' => $grp_selected)); $tpl->parse('GROUP_ITEM', '.group_item'); $rs->moveNext(); } } } /************************************************************************* * Main script */ // Include core library require_once 'imscp-lib.php'; iMSCP_Events_Aggregator::getInstance()->dispatch(iMSCP_Events::onClientScriptStart); check_login('user'); customerHasFeature('protected_areas') or showBadRequestErrorPage(); /** @var $cfg iMSCP_Config_Handler_File */ $cfg = iMSCP_Registry::get('config'); $tpl = new iMSCP_pTemplate(); $tpl->define_dynamic(array('layout' => 'shared/layouts/ui.tpl', 'page' => 'client/protect_it.tpl', 'page_message' => 'layout', 'group_item' => 'page', 'user_item' => 'page', 'unprotect_it' => 'page')); $tpl->assign(array('TR_PAGE_TITLE' => tr('Client / Webtools / Protected Areas / {TR_DYNAMIC_TITLE}'), 'TR_FTP_DIRECTORIES' => tojs('Ftp directories'), 'TR_CLOSE' => tojs(tr('Close')), 'TR_DYNAMIC_TITLE' => isset($_GET['id']) ? tr('Edit protected area') : tr('Add protected area'), 'TR_PROTECTED_AREA' => tr('Protected areas'), 'TR_AREA_NAME' => tr('Area name'), 'TR_PATH' => tr('Path'), 'CHOOSE_DIR' => tr('Choose dir'), 'TR_USER' => tr('Users'), 'TR_GROUPS' => tr('Groups'), 'TR_USER_AUTH' => tr('User auth'), 'TR_GROUP_AUTH' => tr('Group auth'), 'TR_PROTECT_IT' => tr('Protect it'), 'TR_UNPROTECT_IT' => tr('Unprotect it'), 'TR_CANCEL' => tr('Cancel'), 'TR_MANAGE_USERS_AND_GROUPS' => tr('Users and groups'))); generateNavigation($tpl); $domainId = get_user_domain_id($_SESSION['user_id']); protect_area($domainId); gen_protect_it($tpl, get_user_domain_id($domainId)); generatePageMessage($tpl); $tpl->parse('LAYOUT_CONTENT', 'page'); iMSCP_Events_Aggregator::getInstance()->dispatch(iMSCP_Events::onClientScriptEnd, array('templateEngine' => $tpl)); $tpl->prnt(); unsetMessages();
} } else { showBadRequestErrorPage(); exit; } } else { showBadRequestErrorPage(); exit; } } else { showBadRequestErrorPage(); exit; } } else { $otherDir = '/htdocs'; $appLoginName = ''; $appLoginName = ''; $appPassword = ''; $appEmail = ''; } $tpl->assign(array('TR_PAGE_TITLE' => tr('Client / Webtools / Software / Software Installation'), 'SOFTWARE_ID' => tohtml($softwareId), 'TR_NAME' => tr('Software'), 'TR_TYPE' => tr('Type'), 'TR_DB' => tr('Database required'), 'TR_SELECT_DOMAIN' => tr('Target domain'), 'TR_CANCEL' => tr('Cancel'), 'TR_INSTALL' => tr('Install'), 'TR_PATH' => tr('Installation path'), 'TR_FTP_DIRECTORIES' => tojs('Ftp directories'), 'TR_CLOSE' => tojs(tr('Close')), 'TR_CHOOSE_DIR' => tr('Choose dir'), 'TR_SELECT_DB' => tr('Database'), 'TR_SQL_USER' => tr('SQL user'), 'TR_SQL_PWD' => tr('Password'), 'TR_SOFTWARE_MENU' => tr('Software installation'), 'TR_INSTALLATION' => tr('Installation details'), 'TR_INSTALLATION_INFORMATION' => tr('Username and password for application login'), 'TR_INSTALL_USER' => tr('Login username'), 'TR_INSTALL_PWD' => tr('Login password'), 'TR_INSTALL_EMAIL' => tr('Email address'), 'VAL_OTHER_DIR' => tohtml($otherDir), 'VAL_INSTALL_USERNAME' => tohtml($appLoginName), 'VAL_INSTALL_EMAIL' => tohtml($appEmail))); client_generatePage($tpl, $softwareId); generateNavigation($tpl); generatePageMessage($tpl); $tpl->parse('LAYOUT_CONTENT', 'page'); iMSCP_Events_Aggregator::getInstance()->dispatch(iMSCP_Events::onClientScriptEnd, array('templateEngine' => $tpl)); $tpl->prnt(); unsetMessages(); } else { showBadRequestErrorPage(); }
$mainDmnProps = get_domain_default_props($_SESSION['user_id']); $mainDmnId = $mainDmnProps['domain_id']; $mainDmnName = $mainDmnProps['domain_name']; $ftpAccountLimit = $mainDmnProps['domain_ftpacc_limit']; if (is_xhr() && isset($_POST['domain_type'])) { echo json_encode(ftp_getDomainList($mainDmnName, $mainDmnId, clean_input($_POST['domain_type']))); exit; } elseif (!empty($_POST)) { // Check for ftp account limit (only on new account submission to avoid too many query each time the page // is displayed $nbFtpAccounts = get_customer_running_ftp_acc_cnt($_SESSION['user_id']); if ($ftpAccountLimit && $nbFtpAccounts >= $ftpAccountLimit) { set_page_message(tr('FTP account limit reached.'), 'error'); redirectTo('ftp_accounts.php'); } if (ftp_addAccount($mainDmnName)) { redirectTo('ftp_accounts.php'); } } /** @var $cfg iMSCP_Config_Handler_File */ $cfg = iMSCP_Registry::get('config'); $tpl = new iMSCP_pTemplate(); $tpl->define_dynamic(array('layout' => 'shared/layouts/ui.tpl', 'page' => 'client/ftp_add.tpl', 'page_message' => 'layout', 'domain_list' => 'page', 'domain_types' => 'page')); $tpl->assign(array('TR_PAGE_TITLE' => tr('Client / FTP / Add FTP Account'), 'TR_FTP_DIRECTORIES' => tojs('Ftp directories'), 'TR_CLOSE' => tojs(tr('Close')), 'TR_FTP_ACCOUNT_DATA' => tr('Ftp account data'), 'TR_DOMAIN_TYPE_LABEL' => tr('Domain type'), 'TR_USERNAME' => tr('Username'), 'TR_PASSWORD' => tr('Password'), 'TR_PASSWORD_REPEAT' => tr('Repeat password'), 'TR_HOME_DIR' => tr('Home directory'), 'TR_CHOOSE_DIR' => tr('Choose dir'), 'TR_ADD' => tr('Add'), 'TR_CANCEL' => tr('Cancel'))); ftp_generatePageData($mainDmnName, $mainDmnId, $tpl); generateNavigation($tpl); generatePageMessage($tpl); $tpl->parse('LAYOUT_CONTENT', 'page'); iMSCP_Events_Aggregator::getInstance()->dispatch(iMSCP_Events::onClientScriptEnd, array('templateEngine' => $tpl)); $tpl->prnt(); unsetMessages();
EventManager::getInstance()->dispatch(Events::onClientScriptStart); check_login('user'); if (isset($_REQUEST['action'])) { $action = clean_input($_REQUEST['action']); if ($action === 'add') { if (addList()) { set_page_message(tr('Mailing list successfully scheduled for creation.'), 'success'); redirectTo('mailman.php'); } } elseif ($action === 'edit') { if (!empty($_POST) && addList()) { set_page_message(tr('Mailing list successfully scheduled for update'), 'success'); redirectTo('mailman.php'); } } elseif ($action === 'delete' && isset($_REQUEST['list_id'])) { deleteList(clean_input($_REQUEST['list_id'])); set_page_message(tr('Mailing list successfully scheduled for deletion.'), 'success'); redirectTo('mailman.php'); } else { showBadRequestErrorPage(); } } $tpl = new TemplateEngine(); $tpl->define_dynamic(array('layout' => 'shared/layouts/ui.tpl', 'page' => '../../plugins/Mailman/themes/default/view/client/mailman.tpl', 'page_message' => 'layout', 'email_lists' => 'page', 'email_list' => 'email_lists')); $tpl->assign(array('TR_PAGE_TITLE' => tr('Client / Email / Mailman'), 'ISP_LOGO' => layout_getUserLogo(), 'DATATABLE_TRANSLATIONS' => getDataTablesPluginTranslations(), 'TR_MAIL_LISTS' => tojs(tr('Mailing List', false)), 'TR_EDIT' => tr('Edit'), 'TR_DELETE' => tr('Delete'), 'TR_ADD_LIST' => tr('Add mailing list'), 'TR_MAIL_LIST' => tr('Mailing List'), 'TR_LIST_NAME' => tr('List name'), 'TR_LIST_URL' => tr('List URL'), 'TR_STATUS' => tr('Status'), 'TR_ACTIONS' => tr('Actions'), 'TR_ADMIN_EMAIL' => tr('Admin email'), 'TR_ADMIN_PASSWORD' => tr('Password'), 'TR_ADMIN_PASSWORD_CONFIRM' => tr('Password confirmation'), 'TR_URL' => tr('Url'), 'TR_CONFIRM_DELETION' => tr('Please, confirm the deletion of the %s mailing list.', false, '%s'), 'TR_SAVE' => tojs(tr('Save', false)), 'TR_CANCEL' => tojs(tr('Cancel', false)))); generateNavigation($tpl); generatePage($tpl); $tpl->parse('LAYOUT_CONTENT', 'page'); EventManager::getInstance()->dispatch(Events::onClientScriptEnd, array('templateEngine' => $tpl)); $tpl->prnt(); unsetMessages();