function exec_ogp_module() { global $db, $view, $settings; if (!isset($_SESSION)) { session_start(); } if (isset($_SESSION['ERRMSG_ARR']) && is_array($_SESSION['ERRMSG_ARR']) && count($_SESSION['ERRMSG_ARR']) > 0) { $errmsg = '<table>'; foreach ($_SESSION['ERRMSG_ARR'] as $msg) { $errmsg .= "<tr><td><img width='8px' src='images/offline.png'/></td><td style='text-align:left;color:red;'>" . $msg . '</td></tr>'; } $errmsg .= '</table><br>'; unset($_SESSION['ERRMSG_ARR']); } echo "<h2>" . get_lang('user_registration') . "</h2>"; if (isset($errmsg)) { echo $errmsg; $input = $_SESSION['INPUT']; } $lang_switch = (isset($_GET['lang']) and $_GET['lang'] != "-") ? "&lang=" . $_GET['lang'] : ""; ?> <style> .left { margin-left:auto; margin-right:auto; text-align:left; } .right { margin-left:auto; margin-right:auto; text-align:right; } </style> <?php require_once 'includes/form_table_class.php'; $ft = new FormTable(); $ft->start_form("?m=register&p=exec{$lang_switch}", "post", "name=\"loginForm\""); $ft->start_table(); $ft->add_field('string', 'login_name', @$input['users_login']); $ft->add_field('password', 'users_passwd', ''); $ft->add_field('password', 'users_cpasswd', ''); $ft->add_field('string', 'users_fname', @$input['users_fname']); $ft->add_field('string', 'users_lname', @$input['users_lname']); $ft->add_field('string', 'users_email', @$input['users_email']); $ft->add_field_hidden('users_comment', get_lang_f('registered_on', date("d/m/Y"))); echo "<tr><td> </td><td>"; require_once 'recaptchalib.php'; require_once 'captchakeys.php'; $use_ssl = isset($_SERVER['HTTPS']) ? true : false; echo recaptcha_get_html($publickey, null, $use_ssl); echo "</td></tr>"; $ft->end_table(); $ft->add_button("submit", "Submit", get_lang('register_a_new_user')); $ft->end_form(); }
function exec_ogp_module() { require_once 'modules/settings/functions.php'; require_once 'includes/form_table_class.php'; global $db, $view, $settings; if (isset($_REQUEST['update_settings'])) { $settings = array("theme" => $_REQUEST['theme'], "welcome_title" => $_REQUEST['welcome_title'], "welcome_title_message" => $_REQUEST['welcome_title_message'], "logo_link" => $_REQUEST['logo_link'], "bg_wrapper" => @$_REQUEST['bg_wrapper'], "custom_tab" => $_REQUEST['custom_tab'], "custom_tab_name" => @$_REQUEST['custom_tab_name'], "custom_tab_link" => @$_REQUEST['custom_tab_link'], "custom_tab_sub" => @$_REQUEST['custom_tab_sub'], "custom_tab_sub_name" => @$_REQUEST['custom_tab_sub_name'], "custom_tab_sub_link" => @$_REQUEST['custom_tab_sub_link'], "custom_tab_sub_name2" => @$_REQUEST['custom_tab_sub_name2'], "custom_tab_sub_link2" => @$_REQUEST['custom_tab_sub_link2'], "custom_tab_sub_name3" => @$_REQUEST['custom_tab_sub_name3'], "custom_tab_sub_link3" => @$_REQUEST['custom_tab_sub_link3'], "custom_tab_sub_name4" => @$_REQUEST['custom_tab_sub_name4'], "custom_tab_sub_link4" => @$_REQUEST['custom_tab_sub_link4'], "custom_tab_target_blank" => @$_REQUEST['custom_tab_target_blank']); $db->setSettings($settings); print_success(get_lang('settings_updated')); $view->refresh("?m=settings&p=themes"); return; } echo "<h2>" . get_lang('theme_settings') . "</h2>"; $row = $db->getSettings(); $ft = new FormTable(); $ft->start_form("?m=settings&p=themes"); $ft->start_table(); $ft->add_custom_field('theme', get_theme_html_str(@$row['theme'])); $ft->add_field('on_off', 'welcome_title', @$row['welcome_title']); $ft->add_field('text', 'welcome_title_message', @$row['welcome_title_message']); $ft->add_field('string', 'logo_link', @$row['logo_link']); if ($settings['theme'] == "Revolution" or "Soft") { $ft->add_field('bg_wrapper', 'bg_wrapper', @$row['bg_wrapper']); } $ft->add_field('on_off', 'custom_tab', @$row['custom_tab']); if (isset($settings['custom_tab']) && $settings['custom_tab'] == "1") { $ft->add_field('string', 'custom_tab_name', @$row['custom_tab_name']); $ft->add_field('string', 'custom_tab_link', @$row['custom_tab_link']); $ft->add_field('on_off', 'custom_tab_sub', @$row['custom_tab_sub']); if (isset($settings['custom_tab_sub']) && $settings['custom_tab_sub'] == "1") { $ft->add_field('string', 'custom_tab_sub_name', @$row['custom_tab_sub_name']); $ft->add_field('string', 'custom_tab_sub_link', @$row['custom_tab_sub_link']); $ft->add_field('string', 'custom_tab_sub_name2', @$row['custom_tab_sub_name2']); $ft->add_field('string', 'custom_tab_sub_link2', @$row['custom_tab_sub_link2']); $ft->add_field('string', 'custom_tab_sub_name3', @$row['custom_tab_sub_name3']); $ft->add_field('string', 'custom_tab_sub_link3', @$row['custom_tab_sub_link3']); $ft->add_field('string', 'custom_tab_sub_name4', @$row['custom_tab_sub_name4']); $ft->add_field('string', 'custom_tab_sub_link4', @$row['custom_tab_sub_link4']); } $ft->add_field('target_self_blank', 'custom_tab_target_blank', @$row['custom_tab_target_blank']); } $ft->end_table(); $ft->add_button("submit", "update_settings", get_lang('update_settings')); $ft->end_form(); }
function exec_ogp_module() { global $db, $view; $home_id = $_GET['home_id']; $isAdmin = $db->isAdmin($_SESSION['user_id']); if ($isAdmin) { $home_info = $db->getGameHome($home_id); $custom_fileds_access_enabled = TRUE; } else { $home_info = $db->getUserGameHome($_SESSION['user_id'], $home_id); $custom_fileds_access_enabled = preg_match("/c/", $home_info['access_rights']) > 0 ? TRUE : FALSE; } if (!$home_info or !$custom_fileds_access_enabled) { return; } $server_xml = read_server_config(SERVER_CONFIG_LOCATION . $home_info['home_cfg_file']); include 'includes/lib_remote.php'; $remote = new OGPRemoteLibrary($home_info['agent_ip'], $home_info['agent_port'], $home_info['encryption_key']); echo "<h2>" . get_lang('editing_home_called') . " \"" . $home_info['home_name'] . "\"</h2>"; echo "<p>"; echo "<a href='?m=gamemanager&p=game_monitor&home_id={$home_id}'><< " . get_lang('back_to_game_monitor') . "</a>"; if ($isAdmin) { echo " "; echo "<a href='?m=user_games'><< " . get_lang('back_to_game_servers') . "</a>"; } echo " "; echo "<a href='?m=user_games&p=edit&home_id={$home_id}'><< " . get_lang('back_to_edit_server') . "</a>"; echo "</p>"; if (isset($_POST['update_settings'])) { $save_field = $_POST['fields']; $db->changeCustomFields($home_info['home_id'], json_encode($save_field)); print_success(get_lang('settings_updated')); $view->refresh("?m=user_games&p=custom_fields&home_id=" . $home_id); } $ft = new FormTable(); $ft->start_form("", "post", "autocomplete=\"off\""); $ft->start_table(); foreach ($server_xml->custom_fields->field as $field) { renderCustomFields($field, $home_info['home_id']); } $ft->end_table(); $ft->add_button("submit", "update_settings", get_lang('update_settings')); $ft->end_form(); }
function exec_ogp_module() { require_once 'includes/form_table_class.php'; global $db, $view; if (isset($_REQUEST['update_settings'])) { $settings = array("panel_name" => $_REQUEST['panel_name'], "header_code" => $_REQUEST['header_code'], "maintenance_mode" => $_REQUEST['maintenance_mode'], "maintenance_title" => $_REQUEST['maintenance_title'], "maintenance_message" => $_REQUEST['maintenance_message'], "panel_language" => $_REQUEST['panel_language'], "time_zone" => $_REQUEST['time_zone'], "charset" => $_REQUEST['charset'], "page_auto_refresh" => $_REQUEST['page_auto_refresh'], "smtp_server" => $_REQUEST['smtp_server'], "smtp_port" => $_REQUEST['smtp_port'], "smtp_login" => $_REQUEST['smtp_login'], "smtp_passw" => $_REQUEST['smtp_passw'], "smtp_ssl" => $_REQUEST['smtp_ssl'], "panel_email_address" => $_REQUEST['panel_email_address'], "feed_enable" => $_REQUEST['feed_enable'], "feed_url" => $_REQUEST['feed_url'], "query_cache_life" => $_REQUEST['query_cache_life'], "query_num_servers_stop" => $_REQUEST['query_num_servers_stop'], "steam_user" => $_REQUEST['steam_user'], "steam_pass" => $_REQUEST['steam_pass'], "steam_guard" => $_REQUEST['steam_guard'], "editable_email" => $_REQUEST['editable_email'], "old_dashboard_behavior" => $_REQUEST['old_dashboard_behavior'], "rsync_available" => $_REQUEST['rsync_available']); $db->setSettings($settings); echo "<h2>" . get_lang('settings') . "</h2>"; print_success(get_lang('settings_updated')); $view->refresh("?m=settings"); return; } function formatOffset($offset) { $hours = $offset / 3600; $remainder = $offset % 3600; $sign = $hours > 0 ? '+' : '-'; $hour = (int) abs($hours); $minutes = (int) abs($remainder / 60); if ($hour == 0 and $minutes == 0) { $sign = ' '; } return $sign . str_pad($hour, 2, '0', STR_PAD_LEFT) . ':' . str_pad($minutes, 2, '0'); } $utc = new DateTimeZone('UTC'); $dt = new DateTime('now', $utc); if (!method_exists($dt, 'getTimestamp')) { $dt = new DateTime_52('now', $utc); } foreach (DateTimeZone::listIdentifiers() as $tz) { $current_tz = new DateTimeZone($tz); $offset = $current_tz->getOffset($dt); $transition = $current_tz->getTransitions($dt->getTimestamp(), $dt->getTimestamp()); $abbr = $transition[0]['abbr']; $zones["{$tz}"] = $tz . '[' . $abbr . ' ' . formatOffset($offset) . ']'; } $rsync_options = array("1" => get_lang('all_available_servers'), "2" => get_lang('only_remote_servers'), "3" => get_lang('only_local_servers')); echo "<h2>" . get_lang('settings') . "</h2>"; $row = $db->getSettings(); $ft = new FormTable(); $ft->start_form("?m=settings", "post", "autocomplete=\"off\""); $ft->start_table(); $ft->add_field('string', 'panel_name', @$row['panel_name']); $locale_files = makefilelist("lang/", ".|..|.svn", true, "folders"); $locale_files = array('' => "-") + $locale_files; $ft->add_custom_field('panel_language', create_drop_box_from_array($locale_files, "panel_language", @$row['panel_language'])); $zones = array('' => "-") + $zones; $ft->add_custom_field('time_zone', create_drop_box_from_array($zones, "time_zone", @$row['time_zone'], false)); $ft->add_field('string', 'charset', @$row['charset']); $ft->add_field('text', 'header_code', @$row['header_code']); $ft->add_field('on_off', 'maintenance_mode', @$row['maintenance_mode']); $ft->add_field('string', 'maintenance_title', @$row['maintenance_title']); $ft->add_field('text', 'maintenance_message', @$row['maintenance_message']); $ft->add_field('on_off', 'page_auto_refresh', @$row['page_auto_refresh']); $ft->add_field('string', 'panel_email_address', @$row['panel_email_address']); $ft->add_field('string', 'smtp_server', @$row['smtp_server']); $ft->add_field('string', 'smtp_port', @$row['smtp_port']); $ft->add_field('on_off', 'smtp_ssl', @$row['smtp_ssl']); $ft->add_field('string', 'smtp_login', @$row['smtp_login']); $ft->add_field('string', 'smtp_passw', @$row['smtp_passw']); $ft->add_field('on_off', 'feed_enable', @$row['feed_enable']); $ft->add_field('string', 'feed_url', @$row['feed_url']); $query_cache_life = (isset($row['query_cache_life']) and $row['query_cache_life'] != "") ? $row['query_cache_life'] : "30"; $ft->add_field('string', 'query_cache_life', $query_cache_life); $query_num_servers_stop = (isset($row['query_num_servers_stop']) and $row['query_num_servers_stop'] != "") ? $row['query_num_servers_stop'] : "15"; $ft->add_field('string', 'query_num_servers_stop', $query_num_servers_stop); $ft->add_field('string', 'steam_user', @$row['steam_user']); $ft->add_field('password', 'steam_pass', @$row['steam_pass']); $ft->add_field('password', 'steam_guard', @$row['steam_guard']); $mail_setting = isset($row['editable_email']) ? $row['editable_email'] : "1"; $ft->add_field('on_off', 'editable_email', $mail_setting); $ft->add_field('on_off', 'old_dashboard_behavior', @$row['old_dashboard_behavior']); $ft->add_custom_field('rsync_available', create_drop_box_from_array($rsync_options, "rsync_available", @$row['rsync_available'], false)); $ft->end_table(); $ft->add_button("submit", "update_settings", get_lang('update_settings')); $ft->end_form(); }
function exec_ogp_module() { $modDb = new MySQLModuleDatabase(); require "includes/config.inc.php"; $modDb->connect($db_host, $db_user, $db_pass, $db_name, $table_prefix); global $view, $db; echo "<h2>" . get_lang('add_new_mysql_host') . "</h2>"; if (isset($_GET['add_mysql_server'])) { foreach ($_GET as $name => $value) { $get[$name] = trim($value); } if (empty($get['mysql_ip'])) { print_failure(get_lang('enter_mysql_ip')); } if (!isPortValid($get['mysql_port'])) { print_failure(get_lang('enter_valid_port')); } if (empty($get['mysql_root_passwd'])) { print_failure(get_lang('enter_mysql_root_password')); } if (empty($get['mysql_name'])) { print_failure(get_lang('enter_mysql_name')); } if ($get['privilegies'] == "custom") { $priv = $get; $privilegies_str = ""; unset($priv['m'], $priv['p'], $priv['remote_server_id'], $priv['mysql_ip'], $priv['mysql_port'], $priv['mysql_root_passwd'], $priv['mysql_name'], $priv['privilegies'], $priv['add_mysql_server']); foreach ($priv as $name => $value) { $privilegies_str .= str_replace("_", " ", $name) . ", "; } } else { $privilegies_str = "ALL"; } $privilegies_str = rtrim($privilegies_str, ', '); $mysql_server_id = $modDb->addMysqlServer($get['remote_server_id'], $get['mysql_name'], $get['mysql_ip'], $get['mysql_port'], $get['mysql_root_passwd'], $privilegies_str); if (!$mysql_server_id) { print_failure(get_lang('could_not_add_mysql_server')); $view->refresh("?m=mysql&p=mysql_admin"); return; } print_success(get_lang('server_added')); $view->refresh("?m=mysql&p=mysql_admin"); return; } echo "<p>" . get_lang('note_mysql_host') . "</p>"; $servers = $db->getRemoteServers(); $conn_method[0] = get_lang('direct_connection'); foreach ($servers as $server_row) { $id = $server_row['remote_server_id']; $name = get_lang_f('connection_through_remote_server_named', $server_row['remote_server_name']); $conn_method[$id] = $name; } require_once "includes/form_table_class.php"; $ft = new FormTable(); $ft->start_form("", "GET"); $ft->start_table(); $ft->add_field_hidden('m', 'mysql'); $ft->add_field_hidden('p', 'mysql_admin'); $ft->add_custom_field('connection_method', create_drop_box_from_array($conn_method, "remote_server_id", "0", false)); $ft->add_field('string', 'mysql_name', isset($_GET['mysql_name']) ? $_GET['mysql_name'] : ""); $ft->add_field('string', 'mysql_ip', isset($_GET['mysql_ip']) ? $_GET['mysql_ip'] : "localhost"); $ft->add_field('string', 'mysql_port', isset($_GET['mysql_port']) ? $_GET['mysql_port'] : "3306"); $ft->add_field('string', 'mysql_root_passwd', isset($_GET['mysql_root_passwd']) ? $_GET['mysql_root_passwd'] : ""); $ft->add_custom_field('privilegies', create_drop_box_from_array(array('all' => get_lang('all'), 'custom' => get_lang('custom')), "privilegies", isset($_GET['privilegies']) ? $_GET['privilegies'] : "all", false)); if (isset($_GET['privilegies']) and $_GET['privilegies'] == "custom") { $ft->add_custom_field('alter', '<input type="checkbox" name="ALTER" checked="checked" >'); $ft->add_custom_field('create', '<input type="checkbox" name="CREATE" checked="checked" >'); $ft->add_custom_field('create_temporary_tables', '<input type="checkbox" name="CREATE TEMPORARY TABLES" checked="checked" >'); $ft->add_custom_field('delete', '<input type="checkbox" name="DELETE" checked="checked" >'); $ft->add_custom_field('drop', '<input type="checkbox" name="DROP" checked="checked" >'); $ft->add_custom_field('index', '<input type="checkbox" name="INDEX" checked="checked" >'); $ft->add_custom_field('insert', '<input type="checkbox" name="INSERT" checked="checked" >'); $ft->add_custom_field('lock_tables', '<input type="checkbox" name="LOCK TABLES" checked="checked" >'); $ft->add_custom_field('select', '<input type="checkbox" name="SELECT" checked="checked" >'); $ft->add_custom_field('update', '<input type="checkbox" name="UPDATE" checked="checked" >'); $ft->add_custom_field('grant_option', '<input type="checkbox" name="GRANT OPTION" checked="checked" >'); } $ft->end_table(); $ft->add_button("submit", "add_mysql_server", get_lang('add_mysql_server')); $ft->end_form(); $mysql_servers = $modDb->getMysqlServers(); if ($mysql_servers === FALSE) { return; } $tr = 0; ?> <table id="servermonitor" class="tablesorter remote"> <thead> <tr> <th colspan="4" ><?php print_lang('configured_mysql_hosts'); ?> </th> </tr> </thead> <tbody> <?php foreach ($mysql_servers as $mysql_server) { if ($mysql_server['remote_server_id'] != 0) { $remote_server = $db->getRemoteServer($mysql_server['remote_server_id']); $remote = new OGPRemoteLibrary($remote_server['agent_ip'], $remote_server['agent_port'], $remote_server['encryption_key']); $host_stat = $remote->status_chk(); if ($host_stat === 0) { $server_status = "<span class='failure'>" . get_lang('offline') . "</span> "; } elseif ($host_stat === 1) { $server_status = "<span class='success'>" . get_lang('online') . "</span>"; $command = "mysql -h " . $mysql_server['mysql_ip'] . " -P " . $mysql_server['mysql_port'] . " -u root -p" . $mysql_server['mysql_root_passwd'] . ' -e exit; echo $?'; $test_mysql_conn = $remote->exec($command); if ($test_mysql_conn == 0) { $server_status .= " / <span class='success'>" . get_lang('mysql_online') . "</span>"; } else { $server_status .= "/<span class='failure'>" . get_lang('mysql_offline') . "</span>"; } } elseif ($host_stat === -1) { $server_status = "<span class='failure'>" . get_lang('encryption_key_mismatch') . "</span>\n"; } else { $server_status = "<span class='failure'>" . get_lang('unknown_error') . ": {$host_stat}</span>\n"; } } else { @($link = mysql_connect($mysql_server['mysql_ip'] . ':' . $mysql_server['mysql_port'], 'root', $mysql_server['mysql_root_passwd'])); if ($link === FALSE) { $server_status = "<span class='failure'>" . get_lang('mysql_offline') . "</span>"; } else { $server_status = "<span class='success'>" . get_lang('mysql_online') . "</span>"; mysql_close($link); } } $databases = ""; $mysql_server_dbs = $modDb->getMysqlServerDBs($mysql_server['mysql_server_id']); if (!empty($mysql_server_dbs)) { foreach ($mysql_server_dbs as $mysql_db) { $databases .= $mysql_db['db_name'] . "<a href='?m=mysql&p=edit&mysql_server_id=" . $mysql_server['mysql_server_id'] . "&assign=true&db_id=" . $mysql_db['db_id'] . "&edit_db_settings'>[" . get_lang('edit') . "]</a>\n" . "<a href='?m=mysql&p=edit&mysql_server_id=" . $mysql_server['mysql_server_id'] . "&assign=true&db_id=" . $mysql_db['db_id'] . "&remove_db'>[" . get_lang('remove') . "]</a>\n" . "<br>"; } } $conection_type = $mysql_server['remote_server_id'] == 0 ? get_lang('direct_connection') : get_lang_f('connection_through_remote_server_named', $remote_server['remote_server_name']); $buttons = "<a href='?m=mysql&p=edit&mysql_server_id=" . $mysql_server['mysql_server_id'] . "&delete'>[" . get_lang('remove') . "]</a>\n" . "<a href='?m=mysql&p=edit&mysql_server_id=" . $mysql_server['mysql_server_id'] . "&edit'>[" . get_lang('edit') . "]</a>\n" . "<a href='?m=mysql&p=edit&mysql_server_id=" . $mysql_server['mysql_server_id'] . "&assign'>[" . get_lang('assign_db') . "]</a>\n"; $tittle = "<b>ID#:</b> <b style='color:red;'>" . $mysql_server['mysql_server_id'] . "</b></td>\n\t\t\t\t\t<td class='collapsible' ><b>" . get_lang('mysql_server_name') . ":</b> " . $mysql_server['mysql_name'] . "</td>\n\t\t\t\t\t<td class='collapsible' ><b>" . get_lang('server_status') . ":</b>{$server_status}</td>"; $data = "<tr class='expand-child' >\n\t\t\t\t <td>\n\t\t\t\t\t<b>" . get_lang('mysql_ip_port') . ":</b> " . $mysql_server['mysql_ip'] . ":" . $mysql_server['mysql_port'] . "<br />\n\t\t\t\t\t<b>" . get_lang('mysql_root_passwd') . ":</b> " . $mysql_server['mysql_root_passwd'] . "<br />\n\t\t\t\t\t<b>" . get_lang('connection_method') . ":</b> " . $conection_type . "<br />\n\t\t\t\t\t<b>" . get_lang('user_privilegies') . ":</b> " . $mysql_server['privilegies_str'] . "<br />\n\t\t\t\t </td>\n\t\t\t\t <td>\n\t\t\t\t <b>" . get_lang('current_dbs') . ":</b><br />" . $databases . "</td>\n\t\t\t\t <td>\n\t\t\t\t {$buttons}\n\t\t\t\t </td>\n\t\t\t\t </tr>"; // Template $first = "<tr class='maintr'><td class='collapsible' >{$tittle}</td></tr>"; $second = $data; //Echo them all echo "{$first}{$second}"; } echo "</tbody>"; echo "</table>\n"; ?> <script type="text/javascript"> $(document).ready(function(){ $("#servermonitor") .collapsible("td.collapsible", {collapse: true}) .tablesorter({sortList: [[0,0], [1,0]] , widgets: ['zebra','repeatHeaders']}); }); </script> <?php unset($modDb); }
function exec_ogp_module() { $modDb = new MySQLModuleDatabase(); require "includes/config.inc.php"; $modDb->connect($db_host, $db_user, $db_pass, $db_name, $table_prefix); global $view, $db; $mysql_server_id = @$_REQUEST['mysql_server_id']; $mysql_server = $modDb->getMysqlServer($mysql_server_id); if ($mysql_server['remote_server_id'] == "0") { $server_homes = $db->getGameHomes(); } else { $server_homes = $modDb->getGameHomesByRemoteServerId($mysql_server['remote_server_id']); } $homes_array[0] = get_lang('select_game_server'); foreach ($server_homes as $server_home) { $homes_array["{$server_home['home_id']}"] = "(ID " . $server_home['home_id'] . ") " . $server_home['home_name']; } if ($mysql_server === FALSE) { print_failure(get_lang_f('invalid_mysql_server_id', $mysql_server_id)); $view->refresh("?m=mysql&p=mysql_admin"); return; } if (isset($_REQUEST['add_db'])) { $home_id = $_POST['home_id']; $db_user = trim($_POST['db_user']); $db_passwd = trim($_POST['db_passwd']); $db_name = trim($_POST['db_name']); $enabled = $_POST['enabled']; if (empty($db_user)) { print_failure(get_lang('enter_db_user')); } elseif (empty($db_passwd)) { print_failure(get_lang('enter_db_password')); } elseif (empty($db_name)) { print_failure(get_lang('enter_db_name')); } elseif ($home_id == 0) { print_failure(get_lang('select_game_server')); } else { $db_id = $modDb->addMysqlServerDB($mysql_server_id, $home_id, $db_user, $db_passwd, $db_name, $enabled); if (!$db_id) { print_failure(get_lang_f('there_is_another_db_named_or_user_named', $db_name, $db_user)); } else { $mysql_db = $modDb->getMysqlDBbyId($db_id); if (!$mysql_db) { return; } if ($mysql_db['remote_server_id'] != "0") { $remote_server = $db->getRemoteServer($mysql_db['remote_server_id']); $remote = new OGPRemoteLibrary($remote_server['agent_ip'], $remote_server['agent_port'], $remote_server['encryption_key']); $host_stat = $remote->status_chk(); if ($host_stat === 1) { $command = "mysql -h localhost -P " . $mysql_db['mysql_port'] . " -u root -p" . $mysql_db['mysql_root_passwd'] . ' -e exit; echo $?'; $test_mysql_conn = $remote->exec($command); if ($test_mysql_conn == 0) { $SQL = "CREATE DATABASE IF NOT EXISTS \\`" . $mysql_db['db_name'] . "\\`;" . "GRANT " . $mysql_db['privilegies_str'] . " ON \\`" . $mysql_db['db_name'] . "\\`.* TO '" . $mysql_db['db_user'] . "'@'localhost' IDENTIFIED BY '" . $mysql_db['db_passwd'] . "';" . "FLUSH PRIVILEGES;"; $command = "mysql --host=localhost --port=" . $mysql_db['mysql_port'] . " -uroot -p" . $mysql_db['mysql_root_passwd'] . " -e \"" . $SQL . "\""; $result = $remote->exec($command); } } } else { @($link = mysql_connect($mysql_db['mysql_ip'] . ':' . $mysql_db['mysql_port'], $mysql_db['db_user'], $mysql_db['db_passwd'])); if ($link === FALSE) { @($link = mysql_connect($mysql_db['mysql_ip'] . ':' . $mysql_db['mysql_port'], 'root', $mysql_db['mysql_root_passwd'])); if ($link !== FALSE) { $queries = array("CREATE DATABASE IF NOT EXISTS `" . $mysql_db['db_name'] . "`;", "GRANT " . $mysql_db['privilegies_str'] . " ON `" . $mysql_db['db_name'] . "`.* TO '" . $mysql_db['db_user'] . "'@'" . $mysql_db['mysql_ip'] . "' IDENTIFIED BY '" . $mysql_db['db_passwd'] . "';", "FLUSH PRIVILEGES;"); foreach ($queries as $query) { @($return = mysql_query($query)); if (!$return) { break; } } mysql_close($link); } } } print_success(get_lang_f('db_added_for_home_id', $_POST['home_id'])); } } $view->refresh("?m=mysql&p=mysql_admin&p=edit&mysql_server_id=" . $mysql_server_id . "&assign", 5); } else { if (isset($_REQUEST['remove_db'])) { $db_id = $_REQUEST['db_id']; $mysql_db = $modDb->getMysqlDBbyId($db_id); if ($mysql_db['remote_server_id'] != "0") { $remote_server = $db->getRemoteServer($mysql_db['remote_server_id']); $remote = new OGPRemoteLibrary($remote_server['agent_ip'], $remote_server['agent_port'], $remote_server['encryption_key']); $host_stat = $remote->status_chk(); if ($host_stat === 1) { $remote->exec('mysql --host=localhost --port=' . $mysql_db['mysql_port'] . ' -uroot -p' . $mysql_db['mysql_root_passwd'] . ' -e "DROP DATABASE ' . $mysql_db['db_name'] . ";DROP USER '" . $mysql_db['db_user'] . "'@'" . $mysql_db['mysql_ip'] . "';\""); } } else { @($link = mysql_connect($mysql_db['mysql_ip'] . ':' . $mysql_db['mysql_port'], 'root', $mysql_db['mysql_root_passwd'])); if ($link !== FALSE) { $queries = array("DROP DATABASE " . $mysql_db['db_name'] . ";", "DROP USER '" . $mysql_db['db_user'] . "'@'" . $mysql_db['mysql_ip'] . "';"); foreach ($queries as $query) { @($return = mysql_query($query)); if (!$return) { break; } } mysql_close($link); $modDb->connect($db_host, $db_user, $db_pass, $db_name, $table_prefix); } } if ($modDb->removeMysqlServerDB($db_id) === FALSE) { print_failure(get_lang('could_not_remove_db')); } else { print_success(get_lang_f('db_removed_successfully_from_mysql_server_named', $mysql_db['mysql_name'])); } $view->refresh("?m=mysql&p=mysql_admin&p=edit&mysql_server_id=" . $mysql_server_id . "&assign"); } else { if (isset($_POST['save_db_changes'])) { $db_id = $_POST['db_id']; $home_id = $_POST['home_id']; $post_db_user = trim($_POST['db_user']); $post_db_passwd = trim($_POST['db_passwd']); $post_db_name = trim($_POST['db_name']); $enabled = $_POST['enabled']; if (empty($post_db_passwd)) { print_failure(get_lang('enter_db_password')); } elseif ($home_id == 0) { print_failure(get_lang('select_game_server')); } else { $mysql_db = $modDb->getMysqlDBbyId($db_id); if ($post_db_passwd != $mysql_db['db_passwd']) { if ($mysql_db['remote_server_id'] != "0") { $remote_server = $db->getRemoteServer($mysql_db['remote_server_id']); $remote = new OGPRemoteLibrary($remote_server['agent_ip'], $remote_server['agent_port'], $remote_server['encryption_key']); $host_stat = $remote->status_chk(); if ($host_stat === 1) { $SQL = "DROP USER '" . $mysql_db['db_user'] . "'@'" . $mysql_server['mysql_ip'] . "';" . "GRANT " . $mysql_db['privilegies_str'] . " ON \\`" . $mysql_db['db_name'] . "\\`.* TO '" . $mysql_db['db_user'] . "'@'localhost' IDENTIFIED BY '" . $post_db_passwd . "';" . "FLUSH PRIVILEGES;"; $command = "mysql --host=localhost --port=" . $mysql_db['mysql_port'] . " -uroot -p" . $mysql_db['mysql_root_passwd'] . " -e \"" . $SQL . "\""; $remote->exec($command); } } else { @($link = mysql_connect($mysql_db['mysql_ip'] . ':' . $mysql_db['mysql_port'], 'root', $mysql_db['mysql_root_passwd'])); if ($link !== FALSE) { $queries = array("DROP USER '" . $mysql_db['db_user'] . "'@'" . $mysql_server['mysql_ip'] . "';", "GRANT " . $mysql_db['privilegies_str'] . " ON `" . $mysql_db['db_name'] . "`.* TO '" . $mysql_db['db_user'] . "'@'" . $mysql_db['mysql_ip'] . "' IDENTIFIED BY '" . $post_db_passwd . "';", "FLUSH PRIVILEGES;"); foreach ($queries as $query) { @($return = mysql_query($query)); if (!$return) { break; } } mysql_close($link); $modDb->connect($db_host, $db_user, $db_pass, $db_name, $table_prefix); } } } if ($enabled != $mysql_db['enabled']) { if ($mysql_db['remote_server_id'] != "0") { $remote_server = $db->getRemoteServer($mysql_db['remote_server_id']); $remote = new OGPRemoteLibrary($remote_server['agent_ip'], $remote_server['agent_port'], $remote_server['encryption_key']); $host_stat = $remote->status_chk(); if ($host_stat === 1) { if ($enabled == "0") { $SQL = "DROP USER '" . $mysql_db['db_user'] . "'@'" . $mysql_server['mysql_ip'] . "';" . "FLUSH PRIVILEGES;"; } else { $SQL = "GRANT " . $mysql_db['privilegies_str'] . " ON \\`" . $mysql_db['db_name'] . "\\`.* TO '" . $mysql_db['db_user'] . "'@'localhost' IDENTIFIED BY '" . $post_db_passwd . "';" . "FLUSH PRIVILEGES;"; } $command = "mysql --host=localhost --port=" . $mysql_db['mysql_port'] . " -uroot -p" . $mysql_db['mysql_root_passwd'] . " -e \"" . $SQL . "\""; $remote->exec($command); } } else { @($link = mysql_connect($mysql_db['mysql_ip'] . ':' . $mysql_db['mysql_port'], 'root', $mysql_db['mysql_root_passwd'])); if ($link !== FALSE) { if ($enabled == "0") { $queries = array("DROP USER '" . $mysql_db['db_user'] . "'@'" . $mysql_server['mysql_ip'] . "';", "FLUSH PRIVILEGES;"); } else { $queries = array("GRANT " . $mysql_db['privilegies_str'] . " ON `" . $mysql_db['db_name'] . "`.* TO '" . $mysql_db['db_user'] . "'@'" . $mysql_db['mysql_ip'] . "' IDENTIFIED BY '" . $post_db_passwd . "';", "FLUSH PRIVILEGES;"); } foreach ($queries as $query) { @($return = mysql_query($query)); if (!$return) { break; } } mysql_close($link); $modDb->connect($db_host, $db_user, $db_pass, $db_name, $table_prefix); } } } if ($modDb->editMysqlServerDB($db_id, $home_id, $post_db_user, $post_db_passwd, $post_db_name, $enabled) === FALSE) { print_failure(get_lang('could_not_be_changed')); } else { print_success(get_lang_f('db_changed_successfully', $post_db_name)); } } $view->refresh("?m=mysql&p=mysql_admin&p=edit&mysql_server_id=" . $mysql_server_id . "&assign"); } else { if (isset($_REQUEST['delete'])) { if (!isset($_REQUEST['y'])) { echo "<p>" . get_lang_f('areyousure_remove_mysql_server', $mysql_server['mysql_name']) . "</p>\n <p><a href='?m=mysql&p=mysql_admin&p=edit&mysql_server_id=" . $mysql_server_id . "&delete&y=y'>" . get_lang('yes') . "</a> <a href='?m=mysql&p=mysql_admin'>" . get_lang('no') . "</a></p>"; return; } else { $mysql_dbs = $modDb->getMysqlServerDBs($mysql_server_id); if (!empty($mysql_dbs)) { foreach ($mysql_dbs as $mysql_db) { if ($mysql_server['remote_server_id'] != "0") { $remote_server = $db->getRemoteServer($mysql_server['remote_server_id']); $remote = new OGPRemoteLibrary($remote_server['agent_ip'], $remote_server['agent_port'], $remote_server['encryption_key']); $host_stat = $remote->status_chk(); if ($host_stat === 1) { $remote->exec('mysql --host=localhost --port=' . $mysql_server['mysql_port'] . ' -uroot -p' . $mysql_server['mysql_root_passwd'] . ' -e "DROP DATABASE ' . $mysql_db['db_name'] . ";DROP USER '" . $mysql_db['db_user'] . "'@'" . $mysql_server['mysql_ip'] . "';\""); } } else { @($link = mysql_connect($mysql_server['mysql_ip'] . ':' . $mysql_server['mysql_port'], 'root', $mysql_server['mysql_root_passwd'])); if ($link !== FALSE) { $queries = array("DROP DATABASE " . $mysql_db['db_name'] . ";", "DROP USER '" . $mysql_db['db_user'] . "'@'" . $mysql_server['mysql_ip'] . "';"); foreach ($queries as $query) { @($return = mysql_query($query)); if (!$return) { break; } } mysql_close($link); } } } } if ($modDb->removeMysqlServer($mysql_server_id) === FALSE) { print_failure(get_lang('error_while_remove')); } else { print_success(get_lang_f('mysql_server_removed', $mysql_server['mysql_name'])); } } $view->refresh("?m=mysql&p=mysql_admin"); return; } else { if (isset($_POST['save_settings'])) { foreach ($_POST as $name => $value) { $get[$name] = trim($value); } if (empty($get['mysql_ip'])) { print_failure(get_lang('enter_mysql_ip')); } elseif (!isPortValid($get['mysql_port'])) { print_failure(get_lang('enter_valid_port')); } elseif (empty($get['mysql_root_passwd'])) { print_failure(get_lang('enter_mysql_root_password')); } elseif (empty($get['mysql_name'])) { print_failure(get_lang('enter_mysql_name')); } elseif (!$modDb->editMysqlServer($mysql_server_id, $get['remote_server_id'], $get['mysql_name'], $get['mysql_ip'], $get['mysql_port'], $get['mysql_root_passwd'], $mysql_server['privilegies_str'])) { print_failure(get_lang_f('unable_to_set_changes_to', $mysql_server['mysql_name'])); } else { print_success(get_lang_f('mysql_server_settings_changed', $mysql_server['mysql_name'])); } $view->refresh("?m=mysql&p=mysql_admin&p=edit&mysql_server_id=" . $mysql_server_id . "&edit", 5); } elseif (isset($_GET['edit'])) { echo "<h2>" . get_lang_f('editing_mysql_server', $mysql_server['mysql_name']) . "</h2>"; $mysql_server = $modDb->getMysqlServer($mysql_server_id); $servers = $db->getRemoteServers(); $conn_method[0] = get_lang('direct_connection'); foreach ($servers as $server_row) { $id = $server_row['remote_server_id']; $name = get_lang_f('connection_through_remote_server_named', $server_row['remote_server_name']); $conn_method[$id] = $name; } $ft = new FormTable(); $ft->start_form('?m=mysql&p=edit&mysql_server_id=' . $mysql_server_id . '&edit'); $ft->start_table(); $ft->add_custom_field('connection_method', create_drop_box_from_array($conn_method, "remote_server_id", $mysql_server['remote_server_id'], false)); $ft->add_field('string', 'mysql_name', $mysql_server['mysql_name']); $ft->add_field('string', 'mysql_ip', $mysql_server['mysql_ip']); $ft->add_field('string', 'mysql_port', $mysql_server['mysql_port']); $ft->add_field('string', 'mysql_root_passwd', $mysql_server['mysql_root_passwd']); $ft->end_table(); $ft->add_button("submit", "save_settings", get_lang('save_settings')); $ft->end_form(); echo create_back_button('mysql', 'mysql_admin'); } elseif (isset($_GET['assign'])) { echo "<h2>" . get_lang_f('mysql_dbs_for', $mysql_server['mysql_name']) . "</h2>"; $mysql_server_dbs = $modDb->getMysqlServerDBs($mysql_server['mysql_server_id']); if (!empty($mysql_server_dbs)) { echo "<h4>" . get_lang('edit_dbs') . "</h4>"; foreach ($mysql_server_dbs as $mysql_db) { $home_info = $db->getGameHomeWithoutMods($mysql_db['home_id']); $db_array["{$mysql_db['db_id']}"] = $mysql_db['db_name'] . " (" . $home_info['home_name'] . ")"; } $ft = new FormTable(); $ft->start_form('', 'GET'); $ft->add_field_hidden('m', 'mysql'); $ft->add_field_hidden('p', 'edit'); $ft->add_field_hidden('mysql_server_id', $mysql_server_id); $ft->add_field_hidden('assign', 'true'); $ft->start_table(); $ft->add_custom_field('select_db', create_drop_box_from_array($db_array, "db_id", isset($_GET['db_id']) ? $_GET['db_id'] : "", false)); $ft->end_table(); $ft->add_button('submit', 'edit_db_settings', get_lang('edit_db_settings')); $ft->add_button('submit', 'remove_db', get_lang('remove_db')); $ft->end_form(); if (isset($_GET['edit_db_settings'])) { $mysql_db = $modDb->getMysqlDBbyId($_GET['db_id']); $ft = new FormTable(); $ft->start_form(''); $ft->add_field_hidden('db_id', $mysql_db['db_id']); $ft->start_table(); $ft->add_custom_field('game_server', create_drop_box_from_array($homes_array, "home_id", $mysql_db['home_id'], false)); $ft->add_field('string', 'db_user', $mysql_db['db_user'], "50", "readonly"); $ft->add_field('string', 'db_passwd', $mysql_db['db_passwd']); $ft->add_field('string', 'db_name', $mysql_db['db_name'], "50", "readonly"); $ft->add_field('on_off', 'enabled', $mysql_db['enabled']); $ft->end_table(); $ft->add_button('submit', 'save_db_changes', get_lang('save_db_changes')); $ft->end_form(); } } echo "<h4>" . get_lang('add_db') . "</h4>"; $ft = new FormTable(); $ft->start_form(''); $ft->start_table(); $ft->add_custom_field('game_server', create_drop_box_from_array($homes_array, "home_id", "0", false)); $ft->add_field('string', 'db_user', ''); $ft->add_field('string', 'db_passwd', genRandomString('10')); $ft->add_field('string', 'db_name', ''); $ft->add_field('on_off', 'enabled', '1'); $ft->end_table(); $ft->add_button('submit', 'add_db', get_lang('add_db')); $ft->end_form(); echo create_back_button('mysql', 'mysql_admin'); } else { print_failure("Invalid url."); $view->refresh("?m=mysql&p=mysql_admin"); } } } } } }
function exec_ogp_module() { global $view; global $db; echo "<h2>" . get_lang('add_new_remote_host') . "</h2>"; echo "<p>" . get_lang('note_remote_host') . "</p>"; require_once "includes/form_table_class.php"; $ft = new FormTable(); $ft->start_form("?m=server&p=add"); $ft->start_table(); $ft->add_field('string', 'remote_host', ""); $ft->add_field('string', 'remote_host_port', "12679"); $ft->add_field('string', 'remote_host_name', ""); $ft->add_field('string', 'remote_host_user_name', ""); $ft->add_field('string', 'remote_host_ftp_ip', ""); $ft->add_field('string', 'remote_host_ftp_port', "21"); $ft->add_field('string', 'remote_encryption_key', ""); $ft->add_field('string', 'timeout', "2"); $ft->add_field('on_off', 'use_nat', "0"); $ft->end_table(); $ft->add_button('submit', 'add_remote_host', get_lang('add_remote_host')); $ft->end_form(); $servers = $db->getRemoteServers(); if ($servers === FALSE) { return; } $tr = 0; ?> <table id="servermonitor" class="tablesorter remote"> <thead> <tr> <th colspan="4" ><?php print_lang('configured_remote_hosts'); ?> </th> </tr> </thead> <tbody> <?php foreach ($servers as $server_row) { #generate jQuery code $jqboobles["{$server_row['remote_server_id']}"] = '$("#tonus-' . $server_row['remote_server_id'] . '").tooltip({ delay: 0, showURL: false, bodyHandler: function() { return $("<img/>").attr("src", this.src); } });'; #check to see if the remote daeomns are up status_chk is found in lib_remote.php $remote = new OGPRemoteLibrary($server_row['agent_ip'], $server_row['agent_port'], $server_row['encryption_key']); $host_stat = $remote->status_chk(); $buttons = "<a href='?m=server&p=edit&rhost_id=" . $server_row['remote_server_id'] . "&delete'>[" . get_lang('delete') . "]</a>\n" . "<a href='?m=server&p=edit&rhost_id=" . $server_row['remote_server_id'] . "&edit'>[" . get_lang('edit') . "]</a>\n"; $tittle = "<b>ID#:</b> <b style='color:red;'>" . $server_row['remote_server_id'] . "</b></td>\n\t\t\t\t\t<td class='collapsible' ><b>" . get_lang('server_name') . ":</b> " . $server_row['remote_server_name'] . "</td>\n\t\t\t\t\t<td class='collapsible' ><b>" . get_lang('agent_status') . ":</b> "; $booble = ""; if ($host_stat === 0) { $tittle .= "<span class='failure'>" . get_lang('offline') . "</span> "; } elseif ($host_stat === 1) { $os = $remote->what_os(); $buttons .= "<a href='?m=server&p=log&rhost_id=" . $server_row['remote_server_id'] . "'>[" . get_lang('view_log') . "]</a>\n"; $tittle .= "<span class='success'>" . get_lang('online') . "</span>"; $booble .= "<img id='tonus-{$server_row['remote_server_id']}' src='includes/api.php?remote_server={$server_row['remote_server_id']}&mon_stats' height='20' />"; } elseif ($host_stat === -1) { $tittle .= "<span class='failure'>" . get_lang('encryption_key_mismatch') . "</span>\n"; } else { $tittle .= "<span class='failure'>" . get_lang('unknown_error') . ": {$host_stat}</span>\n"; } $tittle .= "</td><td>{$buttons}</td>"; $ftp_ip = empty($server_row['ftp_ip']) ? $server_row['agent_ip'] : $server_row['ftp_ip']; $data = "<tr class='expand-child' >\n\t\t\t\t <td>{$booble}</td><td>\n\t\t\t\t\t<b>" . get_lang('ogp_user') . ":</b> " . $server_row['ogp_user'] . "<br />\n\t\t\t\t\t<b>" . get_lang('agent_ip_port') . ":</b> " . $server_row['agent_ip'] . ":" . $server_row['agent_port'] . "<br />\n\t\t\t\t\t<b>" . get_lang('remote_host_ftp_ip') . ":</b> " . $ftp_ip . "<br />\n\t\t\t\t\t<b>" . get_lang('remote_host_ftp_port') . ":</b> " . $server_row['ftp_port'] . "<br />\n\t\t\t\t\t<b>" . get_lang('timeout') . ":</b> " . $server_row['timeout'] . " " . get_lang('seconds') . "<br />\n\t\t\t\t\t<b>" . get_lang('encryption_key') . ":</b> " . $server_row['encryption_key'] . "<br />\n\t\t\t\t </td>\n\t\t\t\t <td><b>" . get_lang('ips') . ": </b><br>"; // Next we print the IP addresses and one empty field. $remote_server_ips = $db->getRemoteServerIPs($server_row['remote_server_id']); if (empty($remote_server_ips)) { $data .= "<span class='failure'>" . get_lang('no_ip_for_remote_host') . "</span>"; } else { foreach ($remote_server_ips as $ip_row) { $data .= $ip_row['ip'] . "<br>"; } } $data .= "</td><td>"; if ($host_stat === 1) { $data .= "<b>OS:</b> " . @$os . "<br>"; if (preg_match("/Linux/", $os)) { $data .= "<b>" . get_lang('ufw') . ":</b>"; if (isset($_GET['ch_ufw_status']) and $server_row['remote_server_id'] == $_GET['rhost_id']) { $rhost_id = $_GET['rhost_id']; $ch_ufw_status = $_GET['ch_ufw_status']; $db->query("UPDATE `OGP_DB_PREFIXremote_servers`\n\t\t\t\t\t\t\t\tSET ufw_status = '{$ch_ufw_status}'\n\t\t\t\t\t\t\t\tWHERE remote_server_id = '{$rhost_id}'"); if ($ch_ufw_status == "enable") { $remote->sudo_exec("ufw allow " . $server_row['agent_port']); //OGP agent port $remote->sudo_exec("ufw allow " . $server_row['ftp_port']); //FTP port $remote->sudo_exec("ufw allow 80"); //Apache (web server) port $remote->sudo_exec("ufw allow 22"); //SSH (putty) port $remote->sudo_exec("ufw allow 25"); //SMTP (mail) port $remote->sudo_exec("ufw allow proto tcp to any port 40000:65000"); //unknow range of ports needed by the OGP agent $remote->sudo_exec("echo y | ufw {$ch_ufw_status}"); } else { $remote->sudo_exec("ufw {$ch_ufw_status}"); } } if (!$db->query("SELECT ufw_status FROM `OGP_DB_PREFIXremote_servers`")) { $status = "disable"; } else { $status = $db->resultQuery("SELECT ufw_status \n\t\t\t\t\t\t\t\t\t\t FROM `OGP_DB_PREFIXremote_servers` \n\t\t\t\t\t\t\t\t\t\t WHERE remote_server_id = '" . $server_row['remote_server_id'] . "'"); $status = $status[0]['ufw_status']; if (empty($status)) { $status = "disable"; } } $data .= "<br />"; if ($status == "enable") { $data .= "<b>" . get_lang('status') . "</b> " . get_lang('on') . "<br />\n\t\t\t\t\t\t\t <a href='?m=server&rhost_id=" . $server_row['remote_server_id'] . "&ch_ufw_status=disable'>[" . get_lang('stop_firewall') . "]</a>\n"; } elseif ($status == "disable") { $data .= "<b>" . get_lang('status') . "</b> " . get_lang('off') . "<br />\n\t\t\t\t\t\t\t <a href='?m=server&rhost_id=" . $server_row['remote_server_id'] . "&ch_ufw_status=enable'>[" . get_lang('start_firewall') . "]</a>\n"; } $data .= "<br />"; } } $data .= "</td></tr>"; // Template $first = "<tr class='maintr'><td class='collapsible' >{$tittle}</td></tr>"; $second = $data; //Echo them all echo "{$first}{$second}"; } echo "</tbody>"; echo "</table>\n"; ?> <script type="text/javascript"> $(function() { <?php foreach ($jqboobles as $jqbooble) { echo "{$jqbooble}\n"; } ?> }); </script> <script type="text/javascript"> $(document).ready(function(){ $("#servermonitor") .collapsible("td.collapsible", {collapse: true}) .tablesorter({sortList: [[0,0], [1,0]] , widgets: ['zebra','repeatHeaders']}); }); </script> <?php }
function exec_ogp_module() { global $db, $settings; $my_user_id = $_SESSION['user_id']; #who we're logged in as $user_id = $_REQUEST['user_id']; $isAdmin = $db->isAdmin($my_user_id); $mySubUsersAssoc = $db->listSubUsersByParent($my_user_id); if ($mySubUsersAssoc) { foreach ($mySubUsersAssoc as $subuser) { $mySubUsers[] = $subuser['user_id']; } } // Check that we are admin or the user itself. if (!isset($user_id)) { print_failure("Error in parameters."); return; } else { if (!$isAdmin && $my_user_id !== $user_id && @(!in_array($user_id, $mySubUsers))) { print_failure(get_lang('no_rights')); return; } } if ($isAdmin) { $users = $db->getUserList(); foreach ($users as $user) { if ($db->isAdmin($user['user_id'])) { $first_admin_id = $user['user_id']; break; } } if ($db->isAdmin($user_id) and $first_admin_id != $my_user_id and $user_id != $my_user_id) { print_failure(get_lang('no_rights')); return; } } echo "<h2>" . get_lang('your_profile') . "</h2>"; echo "<div align='center'>"; require_once "includes/form_table_class.php"; if ((isset($_POST['new_password']) || isset($_POST['retype_new_password'])) && $_POST['new_password'] !== $_POST['retype_new_password']) { print_failure(get_lang('password_mismatch')); } elseif (isset($_POST['edit_user']) && $my_user_id === $user_id && !$db->is_valid_login($my_user_id, $_REQUEST['current_password'])) { print_failure(get_lang('current_password_mismatch')); } else { if (isset($_POST['edit_user'])) { $user_id = $_POST['user_id']; $newlang = $_POST['newlang']; $login = $_POST['login']; $login = str_replace('"', '', $login); $login = str_replace("'", "", $login); $firstname = $_POST['first_name']; $firstname = str_replace('"', '', $firstname); $firstname = str_replace("'", "", $firstname); $lastname = $_POST['last_name']; $lastname = str_replace('"', '', $lastname); $lastname = str_replace("'", "", $lastname); $email = $_POST['email_address']; $city = $_POST['city']; $province = $_POST['province']; $country = $_POST['country']; $phone = $_POST['phone_number']; $phone = preg_replace("/[^0-9]/", "", $phone); $theme = $_POST['theme']; // OGP needs to set the new theme and language in the current session, only if I'm modifying my own user profile. if ($my_user_id == $user_id) { $_SESSION['users_theme'] = $theme; $_SESSION['users_lang'] = $newlang; } $fields['users_lang'] = $_POST['newlang']; $fields['users_fname'] = $firstname; $fields['users_lname'] = $lastname; $fields['users_phone'] = $phone; $fields['users_city'] = $city; $fields['users_province'] = $province; $fields['users_country'] = $country; if (isset($settings['editable_email'])) { if ($settings['editable_email'] == "1" or $settings['editable_email'] == "0" and $isAdmin) { $fields['users_email'] = $email; } } elseif (!isset($settings['editable_email'])) { $fields['users_email'] = $email; } if ($isAdmin) { $comment = $_POST['comment']; $mins = $_POST['minutes']; $hours = $_POST['hours']; $months = $_POST['month']; $days = $_POST['days']; $years = $_POST['years']; if ($months == 'X' || $days == 'X' || $years == 'X' || $hours == 'X' || $mins == 'X') { $expire_timestamp = "X"; } else { $expire_timestamp = mktime($hours, $mins, 0, $months, $days, $years, -1); } $fields['users_comment'] = $comment; $fields['user_expires'] = $expire_timestamp; $fields['users_login'] = $login; } if (empty($theme)) { $fields['users_theme'] = NULL; } else { $fields['users_theme'] = $theme; } if (isset($_POST['new_password']) && !empty($_POST['new_password'])) { $fields['users_passwd'] = md5($_POST['new_password']); } if (!$db->editUser($fields, $user_id)) { print_failure(get_lang_f('failed_to_update_user_profile_error', $db->getError())); } else { print_success(get_lang_f('profile_of_user_modified_successfully', $login)); $db->logger(get_lang_f('profile_of_user_modified_successfully', $login)); } global $view; if ($isAdmin) { $view->refresh("?m=user_admin"); } else { if (isset($_SESSION['REFER'])) { $view->refresh($_SESSION['REFER']); } else { $view->refresh("?m=user_admin&p=edit_user&user_id=" . $_SESSION['user_id']); } } return; } } $userInfo = $db->getUserById($user_id); $ft = new FormTable(); $ft->start_form('?m=user_admin&p=edit_user'); $ft->add_field_hidden('user_id', $user_id); $ft->start_table(); $login_option = !$isAdmin ? 'readonly="readonly"' : ""; $ft->add_field('string', 'login', $userInfo['users_login'], 50, $login_option); if ($my_user_id === $user_id) { $ft->add_field('password', 'current_password', ''); } $ft->add_field('password', 'new_password', ''); $ft->add_field('password', 'retype_new_password', ''); $locale_files = makefilelist("lang/", ".|..|.svn", true, "folders"); array_push($locale_files, "-"); sort($locale_files); $ft->add_custom_field('language', create_drop_box_from_array($locale_files, "newlang", @$userInfo['users_lang'])); require_once 'modules/settings/functions.php'; $theme = ""; $add_empty = FALSE; if (isset($userInfo['users_theme'])) { $theme = $userInfo['users_theme']; $add_empty = TRUE; } $ft->add_custom_field('theme', get_theme_html_str($theme, $add_empty)); $ft->add_field('string', 'first_name', $userInfo['users_fname']); $ft->add_field('string', 'last_name', $userInfo['users_lname']); $ft->add_field('string', 'phone_number', $userInfo['users_phone']); $email_option = (!$isAdmin and isset($settings['editable_email']) and $settings['editable_email'] == "0") ? 'readonly="readonly"' : ""; $ft->add_field('string', 'email_address', $userInfo['users_email'], 50, $email_option); $ft->add_field('string', 'city', $userInfo['users_city']); $ft->add_field('string', 'province', $userInfo['users_province']); $ft->add_field('string', 'country', $userInfo['users_country']); if ($isAdmin) { $ft->add_field('text', 'comment', $userInfo['users_comment']); ?> <tr> <td align='right'><?php print_lang('expires'); ?> :</td> <?php $timediff = $userInfo["user_expires"]; //echo "Timediff is $timediff<br>"; if (read_expire($timediff) !== 'X') { $exday = date("j", $timediff); $exyear = date("Y", $timediff); $exmonth = date("m", $timediff); $exhour = date("H", $timediff); $exmin = date("i", $timediff); } else { $exday = "X"; $exyear = "X"; $exmonth = "X"; $exhour = "X"; $exmin = "X"; } $minutes = range(0, 59); $pad_length = 2; foreach ($minutes as &$minute) { $minute = str_pad($minute, $pad_length, "0", STR_PAD_LEFT); } $months = array('X' => 'X', '1' => 'Jan', '2' => 'Feb', '3' => 'Mar', '4' => 'Apr', '5' => 'May', '6' => 'Jun', '7' => 'July', '8' => 'Aug', '9' => 'Sep', '10' => 'Oct', '11' => 'Nov', '12' => 'Dec'); #The ugliness below is to populate the expiration fields with what is in the db #Looks bad, but it works well echo "<td align='left'>"; $x_array = array('X'); echo create_drop_box_from_array(array_merge($x_array, range(1, 31)), "days", $exday, true); echo create_drop_box_from_array($months, "month", $exmonth, false); echo create_drop_box_from_array(array_merge($x_array, range(date('Y') - 1, date('Y') + 10)), "years", $exyear, true); echo " - "; echo create_drop_box_from_array(array_merge($x_array, range(0, 23)), "hours", $exhour, true); echo ":"; echo create_drop_box_from_array(array_merge($x_array, $minutes), "minutes", $exmin, true); echo "<tr><td colspan='2' class='info'>" . get_lang('expires_info') . "</td></tr>"; } $ft->end_table(); $ft->add_button("submit", "edit_user", get_lang('save_profile')); $ft->end_form(); echo "</div>"; }
function exec_ogp_module() { global $view; global $db; $rhost_id = @$_REQUEST['rhost_id']; $remote_server = $db->getRemoteServer($rhost_id); if ($remote_server === FALSE) { print_failure(get_lang_f('invalid_remote_host_id', $rhost_id)); $view->refresh("?m=server"); return; } echo "<h2>" . get_lang_f('editing_remote_server', $remote_server['remote_server_name']) . "</h2>"; #this allows you to define upto 4 IPs for each remote host. The IPs are for binding games to if (isset($_REQUEST['add_ip'])) { $remote_ip = $_POST['remote_ip']; $remote_ip = preg_replace("/[^0-9\\.]/", "", $remote_ip); if ($db->addRemoteServerIp($rhost_id, $remote_ip) === FALSE) { print_failure(get_lang('could_not_add_ip')); } else { print_success(get_lang_f('ips_set_for_server', $remote_server['remote_server_name'])); } $view->refresh("?m=server&p=edit&rhost_id=" . $rhost_id . "&edit"); } else { if (isset($_REQUEST['remove_ip'])) { $ip_id = $_POST['ip_id']; if ($db->removeRemoteServerIps($ip_id) === FALSE) { print_failure(get_lang('could_not_remove_ip')); } else { print_success(get_lang_f('ips_set_for_server', $remote_server['remote_server_name'])); } $view->refresh("?m=server&p=edit&rhost_id=" . $rhost_id . "&edit"); } else { if (isset($_REQUEST['edit_ip'])) { $ip_id = $_POST['ip_id']; $ip = $_POST['ip']; $ip = preg_replace("/[^0-9\\.]/", "", $ip); if ($db->editRemoteServerIps($ip_id, $ip) === FALSE) { print_failure(get_lang('could_not_edit_ip')); } else { print_success(get_lang_f('ips_set_for_server', $remote_server['remote_server_name'])); } $view->refresh("?m=server&p=edit&rhost_id=" . $rhost_id . "&edit"); } else { if (isset($_REQUEST['delete'])) { if (!isset($_REQUEST['y'])) { echo "<p>" . get_lang('areyousure_removeagent') . " <b>\"" . $remote_server['remote_server_name'] . "\"</b> " . get_lang('areyousure_removeagent2') . "</p>\n <p><a href='?m=server&p=edit&rhost_id=" . $rhost_id . "&delete&y=y'>" . get_lang('yes') . "</a> <a href='?m=server'>" . get_lang('no') . "</a></p>"; return; } else { if ($db->removeRemoteServer($rhost_id) === FALSE) { print_failure(get_lang('error_while_remove')); } else { print_success(get_lang_f('remote_host_removed', $remote_server['remote_server_name'])); } } $view->refresh("?m=server"); return; } else { if (isset($_REQUEST['save_settings'])) { $db->changeRemoteServerSettings($remote_server['remote_server_id'], $_REQUEST['remote_host'], $_REQUEST['remote_host_port'], $_REQUEST['remote_host_name'], $_REQUEST['ogp_user'], $_REQUEST['remote_host_ftp_ip'], $_REQUEST['remote_host_ftp_port'], $_REQUEST['remote_encryption_key'], $_REQUEST['timeout'], $_REQUEST['use_nat']); print_success(get_lang_f('remote_server_settings_changed', $remote_server['remote_server_name'])); $view->refresh("?m=server&p=edit&rhost_id=" . $rhost_id . "&edit"); } } } } } if (isset($_REQUEST['edit'])) { $remote_server = $db->getRemoteServer($rhost_id); $ftp_ip = empty($remote_server['ftp_ip']) ? $remote_server['agent_ip'] : $remote_server['ftp_ip']; require_once 'includes/form_table_class.php'; $ft = new FormTable(); $ft->start_form('?m=server&p=edit&rhost_id=' . $rhost_id . '&edit'); $ft->add_field_hidden('rhost_id', $remote_server['remote_server_id']); $ft->start_table(); $ft->add_field('string', 'remote_host', $remote_server['agent_ip']); $ft->add_field('string', 'remote_host_port', $remote_server['agent_port']); $ft->add_field('string', 'remote_host_name', $remote_server['remote_server_name']); $ft->add_field('string', 'ogp_user', $remote_server['ogp_user']); $ft->add_field('string', 'remote_host_ftp_ip', $ftp_ip); $ft->add_field('string', 'remote_host_ftp_port', $remote_server['ftp_port']); $ft->add_field('string', 'remote_encryption_key', $remote_server['encryption_key']); $ft->add_field('string', 'timeout', $remote_server['timeout']); $ft->add_field('on_off', 'use_nat', $remote_server['use_nat']); $ft->end_table(); $ft->add_button('submit', 'save_settings', get_lang('save_settings')); $ft->end_form(); echo create_back_button('server'); echo "<h2>" . get_lang_f('remote_ips_for', $remote_server['remote_server_name']) . "</h2>"; echo "<p class='info'>" . get_lang('hint') . ": " . get_lang('add_more_ips') . "</p>"; $remote_server_ips = $db->getRemoteServerIPs($remote_server['remote_server_id']); if (!empty($remote_server_ips)) { echo "<h1>" . get_lang('edit_ip') . "s</h1>"; include 'includes/lib_remote.php'; foreach ($remote_server_ips as $ip_row) { $servers_match_ip_id = $db->getIpPorts($ip_row['ip_id']); $servers_running = FALSE; if ($servers_match_ip_id) { foreach ($servers_match_ip_id as $home_info) { $remote = new OGPRemoteLibrary($home_info['agent_ip'], $home_info['agent_port'], $home_info['encryption_key']); $screen_running = $remote->is_screen_running(OGP_SCREEN_TYPE_HOME, $home_info['home_id']) === 1; if ($screen_running) { $servers_running = TRUE; break; } } } $disabled = $servers_running ? "disabled" : ""; $warning = $servers_running ? "<b class='failure' >" . get_lang('there_are_servers_running_on_this_ip') . "<b>" : ""; echo "<table class='center'>\n\t\t\t\t\t <tr>\n\t\t\t\t\t <td align='left' >\n\t\t\t\t\t <form method='post' action=''>\n\t\t\t\t\t <input name='ip_id' type='hidden' value='" . $ip_row['ip_id'] . "'/>\n\t\t\t\t\t <input name='ip' type='text' value='" . $ip_row['ip'] . "'/>\n\t\t\t\t\t <input type='submit' name='edit_ip' value='" . get_lang('edit_ip') . "' {$disabled}/>\n\t\t\t\t\t <input type='submit' name='remove_ip' value='" . get_lang('remove_ip') . "' {$disabled}/> {$warning}\n\t\t\t\t\t </form>\n\t\t\t\t\t </td>\n\t\t\t\t\t <td style='text-align:left;'>\n\t\t\t\t\t <a href='?m=server&p=arrange_ports&rserver_id=" . $rhost_id . "&ip_id=" . $ip_row['ip_id'] . "'>" . get_lang('arrange_ports') . "</a>\n\t\t\t\t\t </td>\n\t\t\t\t\t </tr>\n\t\t\t\t\t </table>"; } } echo "<h1>" . get_lang('add_ip') . "s</h1>"; $ft = new FormTable(); $ft->start_form(''); $ft->add_field_hidden('rhost_id', $remote_server['remote_server_id']); $ft->start_table(); $ft->add_field('string', 'remote_ip', ''); $ft->end_table(); $ft->add_button('submit', 'add_ip', get_lang('add_ip')); $ft->end_form(); } else { print_failure("Invalid url."); $view->refresh("?m=server"); } }
function exec_ogp_module() { global $db; ?> <div class="center"> <h2><?php print_lang('add_new_group'); ?> </h2> <p><?php print_lang('info_group'); ?> </p> <?php require_once 'includes/form_table_class.php'; $ft = new FormTable(); $ft->start_form('?m=user_admin&p=add_group'); $ft->start_table(); $ft->add_field('string', 'group_name', ''); $ft->end_table(); $ft->add_button('submit', 'add_group', get_lang('add_group')); $ft->end_form(); ?> </div> <?php echo '<h2>' . get_lang('available_groups') . '</h2>'; if ($db->isAdmin($_SESSION['user_id'])) { $result = $db->getGroupList(); } else { $result = $db->getUserGroupList($_SESSION['user_id']); } if ($result === FALSE) { echo "<p class='note'>" . get_lang('no_groups_available') . "</p>"; return; } $i = 0; echo "<table class='center'><tr class='tr{$i}'><td>" . get_lang('actions') . "</td><td>" . get_lang('group_name') . "</td><td>" . get_lang('users') . "</td></tr>"; foreach ($result as $row) { $i++; echo "<tr class='tr{$i}'><td><a href='?m=user_games&p=assign&group_id=" . $row['group_id'] . "'>[" . get_lang('assign_homes') . "]</a><br />\n <a href='?m=user_admin&p=del_group&group_id=" . $row['group_id'] . "'>[" . get_lang('delete_group') . ']</a>'; echo "</td><td>" . $row['group_name'] . "</td>"; echo "<td class='left'>"; $subusersEnabled = $db->isModuleInstalled("subusers"); if (!$subusersEnabled) { $available_users = $db->getAvailableUsersForGroup($row['group_id']); } else { if (!$db->isAdmin($_SESSION['user_id'])) { $available_users = $db->getAvailableSubUsersForGroup($row['group_id'], $_SESSION['user_id']); $subEnabled = true; } else { $available_users = $db->getAvailableUsersForGroup($row['group_id']); } } if (is_array($available_users)) { if (count($available_users) > 0) { echo "<form action=\"?m=user_admin&p=add_to_group\" method=\"post\">" . get_lang('add_user_to_group') . ": <select name=\"user_to_add\">"; foreach ($available_users as $user_row) { echo "<option value=\"{$user_row['user_id']}\">{$user_row['users_login']}</option>"; } echo "</select>\n"; echo "<input type='hidden' name='group_id' value='{$row['group_id']}' />"; echo "<input type='submit' name='add_user_to_group' value='" . get_lang('add_user') . "' />"; echo "</form>\n"; } else { if ($subEnabled) { echo "<p>" . get_lang('no_subusers') . "</p>"; } } } else { if ($subEnabled) { echo "<p>" . get_lang('no_subusers') . "</p>"; } } $group_users = $db->listUsersInGroup($row['group_id']); if (is_array($group_users)) { echo "<ul>"; foreach ($group_users as $user_id) { $user_info = $db->getUserById($user_id['user_id']); echo "<li><a href='?m=user_admin&p=del_from_group&group_id=" . $row['group_id'] . "&user_id=" . $user_id['user_id'] . "'>[" . get_lang('remove_from_group') . "]</a> {$user_info['users_login']}</li>"; } echo "</ul>"; } echo "</td></tr>"; } echo "</table>"; }
function exec_ogp_module() { $modDb = new MySQLModuleDatabase(); require "includes/config.inc.php"; $modDb->connect($db_host, $db_user, $db_pass, $db_name, $table_prefix); global $view, $db; $isAdmin = $db->isAdmin($_SESSION['user_id']); if ($isAdmin) { $game_home = $db->getGameHome($_GET['home_id']); } else { $game_home = $db->getUserGameHome($_SESSION['user_id'], $_GET['home_id']); } if (!$game_home and !$isAdmin) { return; } echo "<h2>" . get_lang_f('mysql_dbs_for', $game_home['home_name']) . "</h2>"; $home_dbs = $modDb->getMysqlDBsbyHomeId($game_home['home_id']); if (empty($home_dbs)) { print_failure(get_lang_f('there_are_no_databases_assigned_for', $game_home['home_name'])); return; } $db_array["0"] = get_lang('select_db'); foreach ($home_dbs as $home_db) { $db_array["{$home_db['db_id']}"] = $home_db['db_name']; } $ft = new FormTable(); $ft->start_form(''); $ft->start_table(); $ft->add_custom_field('select_db', create_drop_box_from_array($db_array, "db_id", isset($_REQUEST['db_id']) ? $_REQUEST['db_id'] : "0", false)); $ft->end_table(); $ft->end_form(); $database_exists = FALSE; $server_online = FALSE; if (isset($_REQUEST['db_id']) and $_REQUEST['db_id'] != "0") { $db_id = $_REQUEST['db_id']; $mysql_db = $modDb->getMysqlHomeDBbyId($game_home['home_id'], $db_id); if (!$mysql_db) { return; } if ($mysql_db['remote_server_id'] != "0") { $remote_server = $db->getRemoteServer($mysql_db['remote_server_id']); $remote = new OGPRemoteLibrary($remote_server['agent_ip'], $remote_server['agent_port'], $remote_server['encryption_key']); $host_stat = $remote->status_chk(); if ($host_stat === 1) { $command = "mysql -h localhost -P " . $mysql_db['mysql_port'] . " -u root -p" . $mysql_db['mysql_root_passwd'] . ' -e exit; echo $?'; $test_mysql_conn = $remote->exec($command); if ($test_mysql_conn == 0) { $user_db = $remote->exec('mysqlshow --user='******'db_user'] . ' --password='******'db_passwd'] . ' ' . $mysql_db['db_name']); if ($user_db != "") { $database_exists = TRUE; } $server_online = TRUE; } } } else { @($link = mysql_connect($mysql_db['mysql_ip'] . ':' . $mysql_db['mysql_port'], $mysql_db['db_user'], $mysql_db['db_passwd'])); if ($link !== FALSE) { $server_online = TRUE; if (mysql_select_db($mysql_db['db_name'], $link) !== FALSE) { $databases = mysql_query("SHOW TABLES;"); $user_db = "Database: " . $mysql_db['db_name'] . "\nTables:\n"; while ($table = mysql_fetch_array($databases)) { $user_db .= $table[0] . "\n"; } $database_exists = TRUE; } } } if (isset($_POST['restore'])) { $command = 'mysql --host=' . $mysql_db['mysql_ip'] . ' --port=' . $mysql_db['mysql_port'] . ' --user='******'db_user'] . ' --password='******'db_passwd'] . ' ' . $mysql_db['db_name'] . ' < ' . $_FILES["file"]["tmp_name"]; if ($mysql_db['remote_server_id'] != "0") { $remote->exec($command, $output); } else { system($command); } $view->refresh('?m=mysql&p=user_db&home_id=' . $game_home['home_id'] . '&db_id=' . $db_id, 0); } if ($server_online and $database_exists) { echo "<table class='database' ><tr><td>\n<div class='dragbox bloc rounded' ><h4>" . get_lang('db_info') . "</h4>\n" . "<table class='database_info' ><tr>" . "<td><b>" . get_lang('mysql_ip') . " :</b></td><td>" . $mysql_db['mysql_ip'] . "</td></tr>\n" . "<td><b>" . get_lang('mysql_port') . " :</b></td><td>" . $mysql_db['mysql_port'] . "</td></tr>\n" . "<td><b>" . get_lang('db_name') . " :</b></td><td>" . $mysql_db['db_name'] . "</td></tr>\n" . "<td><b>" . get_lang('db_user') . " :</b></td><td>" . $mysql_db['db_user'] . "</td></tr>\n" . "<td><b>" . get_lang('db_passwd') . " :</b></td><td>" . $mysql_db['db_passwd'] . "</td></tr>\n" . "<td><b>" . get_lang('privilegies') . " :</b></td><td>" . $mysql_db['privilegies_str'] . "</td></tr></table></div>\n" . "<td><div class='dragbox bloc rounded' style='background:black;' ><h4>" . get_lang('db_tables') . "</h4>" . "<pre><xmp>" . $user_db . "</xmp></pre></div></td></tr></table>"; echo "<h2>" . get_lang('db_backup') . "</h2>"; ?> <table class='administration-table'> <tr> <td> <form method="POST" action="?m=mysql&p=get_dump&home_id=<?php echo $game_home['home_id']; ?> &db_id=<?php echo $db_id; ?> &type=cleared" > <button name="download"><?php print_lang('download_db_backup'); ?> </button> </form> <br> <form method="POST" action="?m=mysql&p=user_db&home_id=<?php echo $game_home['home_id']; ?> &db_id=<?php echo $db_id; ?> " enctype="multipart/form-data"> <label for="file"><?php print_lang('sql_file'); ?> :</label> <input type="file" name="file" id="file" /> <button name="restore"><?php print_lang('restore_db_backup'); ?> </button> </form> </td> </tr> </table> <?php } } }