".get_lang($selection.'_info').""; } function exec_ogp_module() { global $db, $settings; global $view; echo "

".get_lang('add_new_game_home')."

"; echo "

<< ".get_lang('back_to_game_servers')."

"; $default_home_dir = $settings["default_game_server_home_path_prefix"]; $remote_servers = $db->getRemoteServers(); if( $remote_servers === FALSE ) { echo "

".get_lang('no_remote_servers_configured')."

".get_lang('add_remote_server')."

"; return; } $game_cfgs = $db->getGameCfgs(); $users = $db->getUserList(); if ( $game_cfgs === FALSE ) { echo "

".get_lang('no_game_configurations_found')." ".get_lang('game_configurations')."

"; return; } echo "

".get_lang('note').": ".get_lang('add_mods_note')."

"; $selections = array(); foreach($db->getModulesAccessRights() as $ar) $selections[$ar['description']] = $ar['flag']; if ( isset($_REQUEST['add_game_home']) ) { $rserver_id = $_POST['rserver_id']; $home_cfg_id = $_POST['home_cfg_id']; $web_user_id = trim($_POST['web_user_id']); $control_password = genRandomString(8); $access_rights = ""; $ftp = FALSE; foreach ($selections as $selection => $flag) { if (isset($_REQUEST[$selection])) { $access_rights .= $flag; if ($flag == "t") { $ftp = TRUE; } } } if ( empty( $web_user_id ) ) { print_failure(get_lang('game_path_empty')); } else { foreach ( $game_cfgs as $row ) { if($row['home_cfg_id'] == $home_cfg_id){ $server_name = $row['game_name']; $game_key = $row['game_key']; $readable_game_key = substr($game_key, 0, stripos($game_key, "_")); $readable_game_key = strtolower($readable_game_key); } } foreach ( $remote_servers as $server ) { if($server['remote_server_id'] == $rserver_id) $ogp_user = $server['ogp_user']; } foreach ( $users as $user ) { if($user['user_id'] == $web_user_id) $web_user = $user['users_login']; } $ftppassword = genRandomString(8); // Game path logic $game_path = "/home/".$ogp_user."/OGP_User_Files/"; // Default $skipId = false; if(hasValue($default_home_dir)){ // Replace some user supported variables with actual value. $game_path = $default_home_dir; $game_path = str_replace("{USERNAME}", $web_user, $game_path); if(stripos($game_path, "{SKIPID}") !== false){ $skipId = true; } $game_path = str_replace("{SKIPID}", "", $game_path); $game_path = str_replace("{GAMEKEY}", $readable_game_key, $game_path); } if($game_path[strlen($game_path)-1] != "/"){ // Make sure the path ends with forward slash $game_path .= "/"; } $game_path = clean_path($game_path); // Clean it // End game path logic if ( ( $new_home_id = $db->addGameHome($rserver_id,$web_user_id,$home_cfg_id, clean_path($game_path),$server_name,$control_password,$ftppassword,$skipId) )!== FALSE ) { $success = $db->assignHomeTo("user",$web_user_id,$new_home_id,$access_rights); if($success){ $home_info = $db->getGameHomeWithoutMods($new_home_id); require_once('includes/lib_remote.php'); $remote = new OGPRemoteLibrary($home_info['agent_ip'],$home_info['agent_port'],$home_info['encryption_key'],$home_info['timeout']); // Create new home directory if it doesn't already exist $remote->exec("mkdir -p " . clean_path($game_path) . (!$skipId ? $new_home_id : "")); if($ftp) { $host_stat = $remote->status_chk(); if( $host_stat === 1) $remote->ftp_mgr("useradd", $home_info['home_id'], $home_info['ftp_password'], $home_info['home_path']); $db->changeFtpStatus('enabled',$new_home_id); } print_success(get_lang('game_home_added')); $db->logger(get_lang('game_home_added')." ($server_name)"); $view->refresh("?m=user_games&p=edit&home_id=$new_home_id", 0); }else{ print_failure(get_lang_f("failed_to_assign_home_to_user", $new_home_id, $web_user . " " . $db->getError())); } } else { print_failure(get_lang_f("failed_to_add_home_to_db",$db->getError())); } } } // View form to add more servers. if( !isset($_POST['rserver_id']) ) { echo "
"; echo ""; echo "
".get_lang('game_server')."\n"; echo ""; echo "
"; } else { if(isset($_POST['rserver_id'])) $rhost_id = $_POST['rserver_id']; $remote_server = $db->getRemoteServer($rhost_id); require_once('includes/lib_remote.php'); $remote = new OGPRemoteLibrary($remote_server['agent_ip'],$remote_server['agent_port'],$remote_server['encryption_key'],$remote_server['timeout']); $host_stat = $remote->status_chk(); if( $host_stat === 1) $os = $remote->what_os(); else { print_failure(get_lang_f("caution_agent_offline_can_not_get_os_and_arch_showing_servers_for_all_platforms")); $os = "Unknown OS"; } echo "
"; echo ""; echo ""; // Select user echo ""; // Select permisions echo ""; // Assign home echo "
".get_lang('game_type')." \n
".get_lang('login').": \n
".get_lang('access_rights').": "; foreach ( $selections as $selection => $flag) { echo create_selection($selection,$flag); } echo "
". "
"; echo "
"; } } ?>