getRemoteServer($_POST['remote_server_id']); $remote = new OGPRemoteLibrary($server_row['agent_ip'],$server_row['agent_port'],$server_row['encryption_key'],$server_row['timeout']); $post_ftp_login = strip_real_escape_string($_POST['ftp_login']); $post_ftp_password = strip_real_escape_string($_POST['ftp_password']); $post_full_path = strip_real_escape_string($_POST['full_path']); $host_stat = $remote->status_chk(); // Validation if(strlen($post_ftp_login) > 20){ print_failure( get_lang("ftp_account_username_too_long") ); $success = false; } if(strlen($post_ftp_password) > 20){ print_failure( get_lang("ftp_account_password_too_long") ); $success = false; } $ftp_accounts_list = $remote->ftp_mgr("list"); $ftp_accounts = explode("\n",$ftp_accounts_list); $user_exists = FALSE; foreach($ftp_accounts as $ftp_account) { if( $ftp_account != "" ) { list($ftp_login, $ftp_path) = explode("\t",$ftp_account); $ftp_login = trim($ftp_login); if ($ftp_login == $post_ftp_login) { $user_exists = TRUE; break; } } } if( $user_exists === TRUE ) { print_failure( get_lang("ftp_account_already_exists") ); } else { if($success) $remote->ftp_mgr("useradd", $post_ftp_login, $post_ftp_password, $post_full_path); } } if(isset($_POST['del_ftp_user_y'])) { $ftp_login = strip_real_escape_string($_POST['ftp_login']); $server_row = $db->getRemoteServer($_POST['remote_server_id']); $remote = new OGPRemoteLibrary($server_row['agent_ip'],$server_row['agent_port'],$server_row['encryption_key'],$server_row['timeout']); $remote->ftp_mgr("userdel", $ftp_login); $home_info = $db->getHomeByFtpLogin($server_row['remote_server_id'], $ftp_login); $db->changeFtpStatus('disabled',$home_info['home_id']); } if(isset($_POST['edit_ftp_user'])) { $server_row = $db->getRemoteServer($_POST['remote_server_id']); $remote = new OGPRemoteLibrary($server_row['agent_ip'],$server_row['agent_port'],$server_row['encryption_key'],$server_row['timeout']); $ftp_login = strip_real_escape_string($_POST['ftp_login']); $settings = ""; foreach($_POST as $key => $value) { if($key != "edit_ftp_user" and $key != "ftp_login" and $key != "remote_server_id") { $clean_value = strip_real_escape_string($value); $account_settings .= $key."\t".$clean_value."\n"; } } $remote->ftp_mgr("usermod", $ftp_login, $account_settings ); } echo "

" . get_lang("ftp_admin") . "

"; $servers = $db->getRemoteServers(); if($servers !== false) { echo "
".get_lang("remote_server")." ".get_lang("login")." ".get_lang("password")." ".get_lang("full_path")."
"; foreach ( $servers as $server_row ) { $display_ip = checkDisplayPublicIP($server_row['display_public_ip'],$server_row['agent_ip']); $remote = new OGPRemoteLibrary($server_row['agent_ip'],$server_row['agent_port'],$server_row['encryption_key'],$server_row['timeout']); $host_stat = $remote->status_chk(); $status = ( $host_stat === 0 or $host_stat === -1 ) ? "". get_lang("offline") ."" : "". get_lang("online") .""; if( $host_stat === 1) { $ftp_accounts_list = $remote->ftp_mgr("list"); $ftp_accounts = explode("\n", $ftp_accounts_list); foreach($ftp_accounts as $ftp_account) { if( !empty($ftp_account)) { list($ftp_login, $ftp_path) = explode("\t", $ftp_account); $ftp_login = trim($ftp_login); $home_info = $db->getHomeByFtpLogin($server_row['remote_server_id'], $ftp_login); $expandme = ( ( isset($_POST['ftp_login']) and $ftp_login == strip_real_escape_string($_POST['ftp_login']) ) AND ( isset($_POST['remote_server_id']) and $home_info['remote_server_id'] == $_POST['remote_server_id'] ) ) ? "expandme" : ""; $home_name = isset( $home_info['home_name'] ) ? $home_info['home_name'] : $ftp_path; $output = " "; echo $output; } } } // end: host_stat === 1 } // end: foreach $servers as $server_row }else { echo get_lang('no_remote_servers'); } echo "
".get_lang('remote_server')." ".get_lang('login')." ".get_lang('server_name')." ".get_lang('full_path')."
".$server_row['remote_server_name']." (".$display_ip.") ".$ftp_login." ".htmlentities($home_name)." ".$ftp_path."
"; $account_details = $remote->ftp_mgr("show", $ftp_login); $ftp_account_detail_list = explode("\n",$account_details); foreach($ftp_account_detail_list as $detail_line) { if( !empty($detail_line)) { list($key,$value) = explode(" : ",$detail_line); $key = trim($key); $value = trim($value); $blacklist = array("Login", "Password", "UID", "GID", "ftp_user_id", "username", "username_prefix", "password", "sys_userid", "sys_groupid", "sys_perm_user", "sys_perm_group", "sys_perm_other", "server_id", "parent_domain_id", "uid", "gid" ); if(in_array($key, $blacklist)) { continue; } if(substr($value, -1) == ')') { $value_parts = explode(" ", $value); if(is_numeric($value_parts[0])) { if(count($value_parts) > 1) { $value = array_shift($value_parts); $advert = implode(" ", $value_parts); } } else { $first_pos = array_shift($value_parts); $parts = preg_split('/:|-/', $first_pos); if(count(array_filter($parts, 'is_numeric')) === 2) { $value = $first_pos; $advert = implode(" ", $value_parts); } } } if($key == "Allowed local IPs" or $key == "ul_ratio" or $key == "ForceSsl" or (count($ftp_account_detail_list) == 4 and $key == "Directory")) { $output .= "
"; } if($key == "Directory") { $value = str_replace( "/./", "", $value ); } $readOnly = ($key == "Username") ? ' readonly' : ''; $showAdvert = (isset($advert)) ? $advert : ''; $output .= " "; unset($key, $value, $advert); } } $output .= "
".$key." ".$showAdvert."
". get_lang("remove_account") ."
"; }