diff --git a/web/stuff/userpanel_backup.php b/web/stuff/userpanel_backup.php
index f4a6d396..7d663355 100644
--- a/web/stuff/userpanel_backup.php
+++ b/web/stuff/userpanel_backup.php
@@ -35,18 +35,27 @@
* Sie sollten eine Kopie der GNU General Public License zusammen mit diesem
* Programm erhalten haben. Wenn nicht, siehe .
*/
-if ((!isset($user_id) or $main!=1) or (isset($user_id) and !$pa['ftpbackup']) or !$ui->id('id', 10, 'get')) {
+
+include(EASYWIDIR . '/stuff/keyphrasefile.php');
+include(EASYWIDIR . '/stuff/ssh_exec.php');
+
+if ((!isset($user_id) or $main != 1) or (isset($user_id) and !$pa['ftpbackup']) or !$ui->id('id', 10, 'get')) {
header('Location: userpanel.php');
die;
}
$sprache = getlanguagefile('gserver',$user_language,$reseller_id);
+
if (isset($admin_id) and $reseller_id != 0 and $admin_id != $reseller_id) {
$reseller_id = $admin_id;
}
-$customer=getusername($user_id);
-include(EASYWIDIR . '/stuff/keyphrasefile.php');
-if ($ui->id('id', 10, 'get') and (!isset($_SESSION['sID']) or in_array($ui->id('id', 10, 'get'),$substituteAccess['gs']))) {
+
+$customer = getusername($user_id);
+
+if ($ui->id('id', 10, 'get') and (!isset($_SESSION['sID']) or in_array($ui->id('id', 10, 'get'), $substituteAccess['gs']))) {
+
$id = (int) $ui->id('id', 10, 'get');
+ $errors = array();
+
$query = $sql->prepare("SELECT g.`serverip`,g.`port`,g.`rootID`,g.`newlayout`,s.`map`,t.`shorten`,AES_DECRYPT(g.`ftppassword`,?) AS `dftppassword`,u.`cname`,AES_DECRYPT(u.`ftpbackup`,?) AS `ftp` FROM `gsswitch` g LEFT JOIN `serverlist` s ON g.`serverid`=s.`id` LEFT JOIN `servertypes` t ON s.`servertype`=t.`id` LEFT JOIN `userdata` u ON g.`userid`=u.`id` WHERE g.`id`=? AND g.`userid`=? AND g.`resellerid`=? LIMIT 1");
$query->execute(array($aeskey,$aeskey,$id,$user_id,$reseller_id));
foreach ($query->fetchAll(PDO::FETCH_ASSOC) as $row) {
@@ -58,60 +67,141 @@ if ($ui->id('id', 10, 'get') and (!isset($_SESSION['sID']) or in_array($ui->id('
$rootid = $row['rootID'];
$ftppass = $row['dftppassword'];
$customer = $row['cname'];
- if ($row['newlayout'] == 'Y') $customer = $customer . '-' . $id;
$ftpbackup = $row['ftp'];
- }
- if ($query->rowCount()==0) redirect('userpanel.php');
- if (!$ui->w('action',3, 'post')) {
- $template_file = "userpanel_gserver_backup.tpl";
- } else if ($ui->w('action',3, 'post') == 'mb'){
- include(EASYWIDIR . '/stuff/ssh_exec.php');
- $rdata=serverdata('root',$rootid,$aeskey);
- $sship = $rdata['ip'];
- $sshport = $rdata['port'];
- $sshuser = $rdata['user'];
- $sshpass = $rdata['pass'];
- $query = $sql->prepare("SELECT DISTINCT(t.`shorten`) FROM `serverlist` s LEFT JOIN `servertypes` t ON s.`servertype`=t.`id` WHERE s.`switchID`=?");
- $query->execute(array($id));
- foreach ($query->fetchAll(PDO::FETCH_ASSOC) as $row) {
- if (isset($shortens)) $shortens .= ' ' . $row['shorten'];
- else $shortens = $row['shorten'];
+ if ($row['newlayout'] == 'Y') {
+ $customer .= '-' . $id;
}
- $webhostdomain=webhostdomain($reseller_id);
- $template_file = (ssh2_execute('gs',$rootid,"sudo -u $customer ./control.sh backup $gsfolder \"$shortens\" \"$webhostdomain\" \"$ftpbackup\"") === false) ? "Error: ".$ssh_reply: $template_file = $gsprache->backup . ' ' . $sprache->create;
- } else if ($ui->w('action',3, 'post') == 'md'){
- $template_file = "userpanel_gserver_backup_md.tpl";
- } else if ($ui->w('action',3, 'post') == 'md2') {
- $query = $sql->prepare("UPDATE `userdata` SET `ftpbackup`=AES_ENCRYPT(?,?) WHERE `id`=? LIMIT 1");
- $query->execute(array($ui->url('ftpbackup', 'post'),$aeskey,$user_id));
- $template_file = $spracheResponse->table_add;
- } else if ($ui->w('action',3, 'post') == 'rb'){
+
+ $fdlData = ftpStringToData($row['ftp']);
+ $ftp_adresse = $fdlData['server'];
+ $ftp_password = $fdlData['pwd'];
+ $ftp_port = $fdlData['port'];
+ $ftp_user = $fdlData['user'];
+ $ftp_path = $fdlData['path'];
+ }
+
+ if ($query->rowCount() == 0) {
+ redirect('userpanel.php?w=bu&id=' . $id);
+ }
+
+ if (!$ui->w('action',3, 'post')) {
+ $template_file = 'userpanel_gserver_backup.tpl';
+
+ } else if ($ui->w('action', 3, 'post') == 'mb') {
+
$shortens = array();
+
$query = $sql->prepare("SELECT DISTINCT(t.`shorten`) FROM `serverlist` s LEFT JOIN `servertypes` t ON s.`servertype`=t.`id` WHERE s.`switchID`=?");
$query->execute(array($id));
foreach ($query->fetchAll(PDO::FETCH_ASSOC) as $row) {
$shortens[] = $row['shorten'];
- $shortens[] = $row['shorten'].'-2';
- $shortens[] = $row['shorten'].'-3';
}
- $template_file = "userpanel_gserver_backup_rb.tpl";
- } else if ($ui->w('action',3, 'post') == 'rb2' and $ui->gamestring('template', 'post')){
- include(EASYWIDIR . '/stuff/ssh_exec.php');
- $rdata = serverdata('root',$rootid,$aeskey);
- $sship = $rdata['ip'];
- $sshport = $rdata['port'];
- $sshuser = $rdata['user'];
- $sshpass = $rdata['pass'];
- $folders=explode("/",$ui->server['SCRIPT_NAME']);
- $amount=count($folders)-1;
+
+ $shortens = implode(' ', $shortens);
+
+ $webhostdomain = webhostdomain($reseller_id);
+
+ $sshReply = ssh2_execute('gs', $rootid, 'sudo -u ' . $customer . ' ./control.sh backup '. $gsfolder . ' "' . $shortens . '" "' . $webhostdomain . '" "' . $ftpbackup . '"');
+
+ $template_file = ($sshReply === false) ? 'Unkown Error' : $template_file = $gsprache->backup . ' ' . $sprache->create;
+
+ } else if ($ui->w('action',3, 'post') == 'md') {
+ $template_file = 'userpanel_gserver_backup_md.tpl';
+
+ } else if ($ui->w('action',3, 'post') == 'md2') {
+
+ if ($ui->ip('ftp_adresse', 'post')) {
+ $ftp_adresse = $ui->ip('ftp_adresse', 'post');
+ } else {
+ $ftp_adresse = $ui->domain('ftp_adresse', 'post');
+ }
+
+ $ftp_password = $ui->password('ftp_password', 20, 'post');
+ $ftp_port = $ui->port('ftp_port', 'post');
+ $ftp_user = $ui->username('ftp_user', 50, 'post');
+ $ftp_path = $ui->path('ftp_path', 'post');
+
+ if (!$ftp_adresse) {
+ $errors['ftp_adresse'] = $sprache->ftp_adresse;
+ }
+
+ if (!$ftp_port) {
+ $errors['ftp_port'] = $sprache->ftp_port;
+ }
+
+ if (!$ftp_user) {
+ $errors['ftp_user'] = $sprache->ftp_user;
+ }
+
+ if (!$ftp_password) {
+ $errors['ftp_password'] = $sprache->ftp_password;
+ }
+
+ if (count($errors) == 0) {
+
+ $checkFtpData = checkFtpData($ftp_adresse, $ftp_port, $ftp_user, $ftp_password);
+
+ if ($checkFtpData !== true and $checkFtpData == 'login') {
+ $errors['ftp_user'] = $sprache->ftp_user;
+ $errors['ftp_password'] = $sprache->ftp_password;
+ } else if ($checkFtpData !== true and $checkFtpData == 'ipport') {
+ $errors['ftp_adresse'] = $sprache->ftp_adresse;
+ $errors['ftp_port'] = $sprache->ftp_port;
+ }
+ }
+
+ if (count($errors) == 0) {
+ if (substr($ftp_path, 0, 1) != '/') {
+ $ftp_path = '/' . $ftp_path;
+ }
+
+ if (substr($ftp_path, -1, 1) != '/') {
+ $ftp_path = $ftp_path . '/';
+ }
+
+ $fdlConnectString = 'ftp://' . $ftp_user . ':' . $ftp_password . '@' . $ftp_adresse . ':' . $ftp_port . $ftp_path;
+
+ $query = $sql->prepare("UPDATE `userdata` SET `ftpbackup`=AES_ENCRYPT(?,?) WHERE `id`=? LIMIT 1");
+ $query->execute(array($fdlConnectString, $aeskey, $user_id));
+ $template_file = $spracheResponse->table_add;
+
+ } else {
+ unset($header, $text);
+ $template_file = 'userpanel_gserver_backup_md.tpl';
+ }
+
+ } else if ($ui->w('action',3, 'post') == 'rb') {
+
+ $shortens = array();
+
+ $query = $sql->prepare("SELECT DISTINCT(t.`shorten`) FROM `serverlist` s LEFT JOIN `servertypes` t ON s.`servertype`=t.`id` WHERE s.`switchID`=?");
+ $query->execute(array($id));
+ foreach ($query->fetchAll(PDO::FETCH_ASSOC) as $row) {
+ $shortens[] = $row['shorten'];
+ $shortens[] = $row['shorten'] . '-2';
+ $shortens[] = $row['shorten'] . '-3';
+ }
+
+ $template_file = 'userpanel_gserver_backup_rb.tpl';
+
+ } else if ($ui->w('action',3, 'post') == 'rb2' and $ui->gamestring('template', 'post')) {
+
+ $folders = preg_split('/\//', $ui->server['SCRIPT_NAME'], -1, PREG_SPLIT_NO_EMPTY);
+
+ $amount = count($folders) - 1;
$i = 0;
$path = '';
while ($i<$amount) {
$path .= $folders[$i] . '/';
$i++;
}
+
$webhostdomain = (isset($ui->server['HTTPS'])) ? 'https://' . $ui->server['HTTP_HOST'] . $path : $webhostdomain = 'http://' . $ui->server['HTTP_HOST'] . $path;
- $template_file = (ssh2_execute('gs', $rootid, 'sudo -u ' . $customer . ' ./control.sh restore ' . $gsfolder . '"' . $ui->gamestring('template', 'post') . ' " "' . $webhostdomain . ' " "' . $ftpbackup . '"') === false) ? 'Error: ' . $ssh_reply : $gsprache->backup . ' ' . $sprache->recover;
+
+ $sshReply = ssh2_execute('gs', $rootid, 'sudo -u ' . $customer . ' ./control.sh restore ' . $gsfolder . '"' . $ui->gamestring('template', 'post') . ' " "' . $webhostdomain . ' " "' . $ftpbackup . '"');
+
+ $template_file = ($sshReply === false) ? 'Unkown Error: ' : $gsprache->backup . ' ' . $sprache->recover;
+
} else {
$template_file = 'userpanel_404.tpl';
}
diff --git a/web/template/default/userpanel_gserver_backup_md.tpl b/web/template/default/userpanel_gserver_backup_md.tpl
index ac4633c3..1ffa3dee 100644
--- a/web/template/default/userpanel_gserver_backup_md.tpl
+++ b/web/template/default/userpanel_gserver_backup_md.tpl
@@ -9,17 +9,53 @@
+0){ ?>
+
+
+
Error(s)
+
+
+
-
+
diff --git a/web/template/default/userpanel_gserver_fdl_es.tpl b/web/template/default/userpanel_gserver_fdl_es.tpl
index 7b135793..c746e1a3 100644
--- a/web/template/default/userpanel_gserver_fdl_es.tpl
+++ b/web/template/default/userpanel_gserver_fdl_es.tpl
@@ -54,7 +54,7 @@
diff --git a/web/template/default/userpanel_gserver_fdl_eu.tpl b/web/template/default/userpanel_gserver_fdl_eu.tpl
index ac91e5bb..4ceca4bf 100644
--- a/web/template/default/userpanel_gserver_fdl_eu.tpl
+++ b/web/template/default/userpanel_gserver_fdl_eu.tpl
@@ -48,7 +48,7 @@