From a3a1ee51384420a89bb6e830562aca4f60eb2be1 Mon Sep 17 00:00:00 2001 From: Serghey Rodin Date: Thu, 14 Feb 2013 19:05:12 +0200 Subject: [PATCH] fix for ftp change password bug --- bin/v-add-web-domain-ftp | 2 +- func/main.sh | 2 +- web/edit/web/index.php | 38 +++++++------------------------------- 3 files changed, 9 insertions(+), 33 deletions(-) diff --git a/bin/v-add-web-domain-ftp b/bin/v-add-web-domain-ftp index 67aa936c..4a343cb2 100755 --- a/bin/v-add-web-domain-ftp +++ b/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 diff --git a/func/main.sh b/func/main.sh index 23a7541f..394be767 100644 --- a/func/main.sh +++ b/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 diff --git a/web/edit/web/index.php b/web/edit/web/index.php index ff833d94..b006dc08 100644 --- a/web/edit/web/index.php +++ b/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('
', $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);