isAdmin($_SESSION['user_id']); if ($isAdmin) { $server_home = $db->getGameHome($home_id); } else { $server_home = $db->getUserGameHome($_SESSION['user_id'], $home_id); } if ($server_home === false) { print_failure(get_lang('no_home')); $view->refresh("?m=gamemanager&p=game_monitor"); return; } $server_xml = read_server_config(SERVER_CONFIG_LOCATION .'/'. $server_home['home_cfg_file']); $files = getFilesInXML($server_xml->configuration_files); $file = ($_SERVER['REQUEST_METHOD'] === 'POST' ? rawurldecode($_POST['file']) : rawurldecode($_GET['file'])); if (array_search($file, array_column($files, 'path')) === false) { print_failure(get_lang('invalid_file')); $view->refresh("?m=editconfigfiles&home_id=". (int)$server_home['home_id']); return; } $remote = new OGPRemoteLibrary($server_home['agent_ip'], $server_home['agent_port'], $server_home['encryption_key'], $server_home['timeout']); if ($remote->status_chk() === 0) { print_failure(get_lang('agent_offline')); $view->refresh("?m=gamemanager&p=game_monitor"); return; } if ($_SERVER['REQUEST_METHOD'] === 'POST') { $file_info = $remote->remote_writefile($server_home['home_path'] . '/' . $file, strip_real_escape_string($_POST['file_content'])); if ($file_info === 1) { print_success(get_lang('wrote_changes')); $view->refresh("?m=editconfigfiles&home_id=". (int)$server_home['home_id']); return; } else { print_failure(get_lang('failed_write')); $view->refresh("?m=editconfigfiles&home_id=". (int)$server_home['home_id']); return; } } else { $newFile = ($remote->rfile_exists($server_home['home_path'] . '/' . $file) == 0 ? true : false); $file_info = $remote->remote_readfile($server_home['home_path'] . '/' . $file, $data); if ($file_info !== 1) { print_failure(get_lang('failed_read')); $view->refresh("?m=editconfigfiles"); return; } echo '
'.($newFile ? get_lang('new_file').':' : '') .' '. htmlentities($file).'
'; echo ''; echo ''; } }