Просмотр исходного кода

fix for ftp change password bug

Serghey Rodin 13 лет назад
Родитель
Сommit
a3a1ee5138
3 измененных файлов с 9 добавлено и 33 удалено
  1. 1 1
      bin/v-add-web-domain-ftp
  2. 1 1
      func/main.sh
  3. 7 31
      web/edit/web/index.php

+ 1 - 1
bin/v-add-web-domain-ftp

@@ -52,7 +52,7 @@ if [ ! -z "$check_ftp_user" ] && [ "$FTP_USER" != "$ftp_user" ]; then
 fi
 
 if [ ! -z "$FTP_USER" ]; then
-    /usr/sbin/userdel $FTP_USER
+    /usr/sbin/userdel -f $FTP_USER
 fi
 
 # Adding user

+ 1 - 1
func/main.sh

@@ -565,7 +565,7 @@ validate_format_name() {
 
 # Username
 validate_format_username() {
-    if ! [[ "$1" =~ ^[a-zA-Z0-9]+([\.|_|-][a-zA-Z0-9]+)?$ ]]; then
+    if ! [[ "$1" =~ ^[a-zA-Z0-9][-|\.|_|a-zA-Z0-9]{0,28}[a-zA-Z0-9]$ ]]; then
         echo "Error: $2 $1 is not valid"
         log_event "$E_INVALID" "$EVENT"
         exit $E_INVALID

+ 7 - 31
web/edit/web/index.php

@@ -469,7 +469,7 @@ if (!empty($_POST['save'])) {
         }
     }
 
-    // FTP Account
+    // Delete FTP Account
     if ((!empty($v_ftp_user)) && (empty($_POST['v_ftp'])) && (empty($_SESSION['error_msg']))) {
         exec (VESTA_CMD."v-delete-web-domain-ftp ".$v_username." ".$v_domain, $output, $return_var);
         if ($return_var != 0) {
@@ -482,6 +482,8 @@ if (!empty($_POST['save'])) {
         $v_ftp_user = '';
         $v_ftp_password = '';
     }
+
+    // Change FTP Account
     if ((!empty($v_ftp_user)) && (!empty($_POST['v_ftp'])) && (empty($_SESSION['error_msg']))) {
         if (empty($_POST['v_ftp_user'])) $errors[] = _('ftp user');
         if (empty($_POST['v_ftp_password'])) $errors[] = _('ftp user password');
@@ -507,39 +509,12 @@ if (!empty($_POST['save'])) {
             }
             unset($output);
             $v_ftp= '';
-            $v_ftp_user = '';
-            $v_ftp_password = '';
-        }
-        if ((!empty($v_ftp_user)) && (!empty($_POST['v_ftp'])) && (empty($_SESSION['error_msg']))) {
-            if (empty($_POST['v_ftp_user'])) $errors[] = _('ftp user');
-            if (empty($_POST['v_ftp_password'])) $errors[] = _('ftp user password');
-            if (!empty($errors[0])) {
-                foreach ($errors as $i => $error) {
-                    if ( $i == 0 ) {
-                        $error_msg = $error;
-                    } else {
-                        $error_msg = $error_msg.", ".$error;
-                    }
-                }
-                $_SESSION['error_msg'] = _('Field "%s" can not be blank.',$error_msg);
-            }
-            if (($v_ftp_user != $_POST['v_ftp_user']) || ($_POST['v_ftp_password'] != "••••••••" ) && (empty($_SESSION['error_msg']))) {
-                $v_ftp_user = preg_replace("/^".$user."_/", "", $_POST['v_ftp_user']);
-                $v_ftp_user = escapeshellarg($v_ftp_user);
-                $v_ftp_password = escapeshellarg($_POST['v_ftp_password']);
-                exec (VESTA_CMD."v-add-web-domain-ftp ".$v_username." ".$v_domain." ".$v_ftp_user." ".$v_ftp_password, $output, $return_var);
-                if ($return_var != 0) {
-                    $error = implode('<br>', $output);
-                    if (empty($error)) $error = _('Error code:',$return_var);
-                    $_SESSION['error_msg'] = $error;
-                }
-                unset($output);
-                $v_ftp_user =  $_POST['v_ftp_user'];
-                $v_ftp_password = "••••••••";
-            }
+            $v_ftp_user = $user."_".preg_replace("/^".$user."_/", "", $_POST['v_ftp_user']);
+            $v_ftp_password = "••••••••";
         }
     }
 
+    // Add FTP Account
     if ((empty($v_ftp_user)) && (!empty($_POST['v_ftp'])) && (empty($_SESSION['error_msg']))) {
         if ((!empty($_POST['v_ftp_email'])) && (!filter_var($_POST['v_ftp_email'], FILTER_VALIDATE_EMAIL))) $_SESSION['error_msg'] = _('Please enter valid email address.');
         if (empty($_POST['v_ftp_user'])) $errors[] = 'ftp user';
@@ -579,6 +554,7 @@ if (!empty($_POST['save'])) {
         }
     }
 
+
     // Restart web
     if (!empty($restart_web) && (empty($_SESSION['error_msg']))) {
         exec (VESTA_CMD."v-restart-web", $output, $return_var);