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}'>&lt;&lt; " . get_lang('back_to_game_monitor') . "</a>";
    if ($isAdmin) {
        echo "  &nbsp; ";
        echo "<a href='?m=user_games'>&lt;&lt; " . get_lang('back_to_game_servers') . "</a>";
    }
    echo "  &nbsp; ";
    echo "<a href='?m=user_games&p=edit&home_id={$home_id}'>&lt;&lt; " . 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();
}
Ejemplo n.º 2
0
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();
}
Ejemplo n.º 3
0
function exec_ogp_module()
{
    global $db;
    $home_id = $_REQUEST['home_id'];
    $server_row = $db->getGameHomeWithoutMods($home_id);
    if (empty($server_row)) {
        print_failure(get_lang('invalid_home_id'));
        return;
    }
    echo "<h2>" . get_lang_f('cloning_home', $server_row['home_name']) . "</h2>";
    echo create_back_button('user_games');
    include 'includes/lib_remote.php';
    $remote = new OGPRemoteLibrary($server_row['agent_ip'], $server_row['agent_port'], $server_row['encryption_key']);
    if (isset($_REQUEST['clone_home'])) {
        $server_name = $_POST['new_home_name'];
        $user_group = $_POST['user_group'];
        $clone_home_id = $db->addGameHome($server_row['remote_server_id'], $server_row['user_id_main'], $server_row['home_cfg_id'], "/home/" . $server_row['ogp_user'] . "/OGP_User_Files/", $server_name, '', genRandomString(8));
        $server_path = "/home/" . $server_row['ogp_user'] . "/OGP_User_Files/" . $clone_home_id;
        if ($clone_home_id === FALSE) {
            print_failure(get_lang_f('cloning_of_home_failed', $home_id));
            return;
        }
        if (isset($_REQUEST['clone_mods'])) {
            $enabled_mods = $db->getHomeMods($home_id);
            if (empty($enabled_mods)) {
                print_failure(get_lang('note') . ": " . get_lang('no_mods_to_clone'));
            } else {
                foreach ($enabled_mods as $enabled_rows) {
                    if ($db->addModToGameHome($clone_home_id, $enabled_rows['mod_cfg_id']) === FALSE) {
                        print_failure(get_lang_f('failed_to_add_mod', $enabled_rows['mod_cfg'], $clone_home_id));
                        return;
                    }
                    if ($db->updateGameModParams($enabled_rows['max_players'], $enabled_rows['extra_params'], $enabled_rows['cpu_affinity'], $enabled_rows['nice'], $clone_home_id, $enabled_rows['mod_cfg_id']) === FALSE) {
                        print_failure(get_lang_f('failed_to_update_mod_settings', $clone_home_id));
                        return;
                    }
                }
                print_success(get_lang_f('successfully_cloned_mods', $clone_home_id));
            }
        }
        print_success(get_lang('successfully_copied_home_database'));
        # do the remote copy call here
        echo "<p>" . get_lang_f('copying_home_remotely', $server_row['home_path'], $server_path) . "</p>";
        $db->logger(get_lang_f('copying_home_remotely', $server_row['home_path'], $server_path));
        $clone_rc = $remote->clone_home($server_row['home_path'], $server_path, $user_group);
        if ($clone_rc == -1) {
            print_success(get_lang('game_server_copy_is_running'));
            ?>
			<div class="html5-progress-bar">
			<progress id="progressbar" value="0" max="100"></progress>
			<span class="progress-value">0%</span>
			</div>
			<script type="text/javascript" src="js/jquery-1.7.1.min.js"></script>
			<script type="text/javascript">
			$(document).ready(function() 
			{
				$.get( "home.php?m=user_games&type=cleared&p=get_size&home_id=<?php 
            echo $home_id;
            ?>
&bytes", function( orig_data ) {
					var orig_size = parseInt(orig_data,10);
					var refreshId = setInterval(function() {
						$.get( "home.php?m=user_games&type=cleared&p=get_size&home_id=<?php 
            echo $clone_home_id;
            ?>
&bytes", function( dest_data ) {
							var dest_size = parseInt(dest_data,10);
							var progress = parseInt(dest_size * 100 / orig_size);
							$('#progressbar').val(progress);
							$('.progress-value').html(progress + '%');
							if(progress == 100)
							{
								clearInterval(refreshId);
							}
						});
					}, 2000);
				});
			});
			</script>
			<?php 
        } elseif ($clone_rc == 1) {
            print_success(get_lang('game_server_copy_was_successful'));
        } else {
            print_failure(get_lang_f('game_server_copy_failed_with_return_code', $clone_rc));
        }
        echo "<br><a href='home.php?m=user_games'>&lt;&lt; " . get_lang('back_to_game_servers') . "</a>";
        return;
    }
    // Form to edit game path.
    $avail_mods = $db->getHomeMods($home_id);
    $read_status = $remote->remote_readfile('/etc/passwd', $passwd_array);
    if ($read_status === -1) {
        print_failure(get_lang('agent_offline'));
        return;
    } else {
        if ($read_status == 1) {
            $passwd_array = preg_split("/\n/", $passwd_array);
        }
    }
    require_once "includes/form_table_class.php";
    $ft = new FormTable();
    $ft->start_form('?m=user_games&amp;p=clone');
    $ft->add_field_hidden('home_id', $home_id);
    $ft->start_table();
    $ft->add_custom_field('agent_ip', $server_row['agent_ip']);
    $ft->add_custom_field('current_home_path', $server_row['home_path']);
    $ft->add_field('string', 'new_home_name', $server_row['home_name']);
    echo "<tr><td class='right'>" . get_lang('clone_mods') . ":</td>\n\t\t<td class='left'><input type='checkbox' name='clone_mods' value='y' /></td></tr>";
    echo "<input name='user_group' type='hidden' value='" . get_user_uid_gid_from_passwd($passwd_array, $server_row['ogp_user']) . "' /></tr>";
    echo "</table>";
    $ft->add_button('submit', 'clone_home', get_lang('clone_home'));
    echo "<p class='info'>" . get_lang('the_name_of_the_server_to_help_users_to_identify_it') . "</p>";
    echo "</form>";
    echo "<h3>" . get_lang('ips_and_ports_used_in_this_home') . "</h3>";
    echo "<p>" . get_lang('note_ips_and_ports_are_not_cloned') . "</p>";
    $assigned = $db->getHomeIpPorts($home_id);
    if (!empty($assigned)) {
        foreach ($assigned as $assigned_rows) {
            echo "<p>" . $assigned_rows['ip'] . ":" . $assigned_rows['port'] . "</p>\n";
        }
    }
    $enabled_mods = $db->getHomeMods($home_id);
    echo "<h3>" . get_lang('mods_and_settings_for_this_game_server') . "</h3>";
    if (empty($enabled_mods)) {
        print_failure(get_lang('note') . ": " . get_lang('note_no_mods'));
        return;
    }
    echo "<table class='center'>\n";
    echo "<tr><td>" . get_lang('mod_name') . "</td><td>" . get_lang('max_players') . "</td><td>" . get_lang('extra_cmd_line_args') . "</td><td>" . get_lang('cpu_affinity') . "</td><td>" . get_lang('nice_level') . "</td></tr>\n";
    foreach ($enabled_mods as $enabled_rows) {
        echo "<tr>";
        echo "<td>" . $enabled_rows['mod_name'] . "</td>";
        echo "<td>" . $enabled_rows['max_players'] . "</td>";
        echo "<td>" . $enabled_rows['extra_params'] . "</td>";
        echo "<td>" . $enabled_rows['cpu_affinity'] . "</td>";
        echo "<td>" . $enabled_rows['nice'] . "</td></tr>\n";
    }
    echo "</table>\n";
}
Ejemplo n.º 4
0
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&amp;p=edit&amp;mysql_server_id=" . $mysql_server_id . "&amp;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&amp;p=edit&amp;mysql_server_id=" . $mysql_server_id . "&amp;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&amp;p=edit&amp;mysql_server_id=" . $mysql_server_id . "&amp;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&amp;p=edit&amp;mysql_server_id=" . $mysql_server_id . "&amp;delete&amp;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&amp;p=edit&amp;mysql_server_id=" . $mysql_server_id . "&amp;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&amp;p=edit&amp;mysql_server_id=' . $mysql_server_id . '&amp;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");
                    }
                }
            }
        }
    }
}
Ejemplo n.º 5
0
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&amp;p=edit&amp;mysql_server_id=" . $mysql_server['mysql_server_id'] . "&amp;delete'>[" . get_lang('remove') . "]</a>\n" . "<a href='?m=mysql&amp;p=edit&amp;mysql_server_id=" . $mysql_server['mysql_server_id'] . "&amp;edit'>[" . get_lang('edit') . "]</a>\n" . "<a href='?m=mysql&amp;p=edit&amp;mysql_server_id=" . $mysql_server['mysql_server_id'] . "&amp;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);
}
Ejemplo n.º 6
0
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&amp;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&amp;p=edit&amp;rhost_id=" . $server_row['remote_server_id'] . "&amp;delete'>[" . get_lang('delete') . "]</a>\n" . "<a href='?m=server&amp;p=edit&amp;rhost_id=" . $server_row['remote_server_id'] . "&amp;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&amp;p=log&amp;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'] . "&nbsp;" . 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&amp;rhost_id=" . $server_row['remote_server_id'] . "&amp;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&amp;rhost_id=" . $server_row['remote_server_id'] . "&amp;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 
}
Ejemplo n.º 7
0
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>&nbsp;</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();
}
Ejemplo n.º 8
0
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&amp;p=edit_user&user_id=" . $_SESSION['user_id']);
                }
            }
            return;
        }
    }
    $userInfo = $db->getUserById($user_id);
    $ft = new FormTable();
    $ft->start_form('?m=user_admin&amp;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>";
}
Ejemplo n.º 9
0
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();
}
Ejemplo n.º 10
0
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&amp;p=edit&amp;rhost_id=" . $rhost_id . "&amp;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&amp;p=edit&amp;rhost_id=" . $rhost_id . "&amp;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&amp;p=edit&amp;rhost_id=" . $rhost_id . "&amp;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&amp;p=edit&amp;rhost_id=" . $rhost_id . "&amp;delete&amp;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&amp;p=edit&amp;rhost_id=" . $rhost_id . "&amp;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&amp;p=edit&amp;rhost_id=' . $rhost_id . '&amp;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");
    }
}
Ejemplo n.º 11
0
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&amp;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&amp;p=assign&amp;group_id=" . $row['group_id'] . "'>[" . get_lang('assign_homes') . "]</a><br />\n            <a href='?m=user_admin&amp;p=del_group&amp;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&amp;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&amp;p=del_from_group&amp;group_id=" . $row['group_id'] . "&amp;user_id=" . $user_id['user_id'] . "'>[" . get_lang('remove_from_group') . "]</a> {$user_info['users_login']}</li>";
            }
            echo "</ul>";
        }
        echo "</td></tr>";
    }
    echo "</table>";
}
Ejemplo n.º 12
0
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 
        }
    }
}