Compare commits

..

No commits in common. "0edba9413371e704d42e889e6180c41cb79f2179" and "d2870fd1d516550a429142eb06a1788df2f17802" have entirely different histories.

2 changed files with 10 additions and 28 deletions

View File

@ -24,14 +24,9 @@ log_debug() {
fi fi
} }
# Validate username format # Generate random username
validate_username() { generate_username() {
local username=$1 echo "user$(shuf -i 10000-99999 -n 1)"
if ! [[ "$username" =~ ^[a-zA-Z0-9_]{3,32}$ ]]; then
log_error "Invalid username format: $username"
return 1
fi
return 0
} }
USERNAME=$1 USERNAME=$1
@ -40,17 +35,11 @@ SSH_ENABLED=$3
log "Script started" log "Script started"
# Validate username # Check if user already exists, if yes generate a new one
if ! validate_username "$USERNAME"; then while id "$USERNAME" &>/dev/null; do
log_error "Invalid username format. Username must be 3-32 characters long and contain only letters, numbers, and underscores." USERNAME=$(generate_username)
exit 1 log_warning "Username $USERNAME already exists, generating a new username."
fi done
# Check if user already exists
if id "$USERNAME" &>/dev/null; then
log_error "Username $USERNAME already exists. Please choose a different username."
exit 1
fi
USER_HOME="/home/sftpusers/$USERNAME" USER_HOME="/home/sftpusers/$USERNAME"
ROOT_DIRECTORY="/var/www/webroot/ROOT" ROOT_DIRECTORY="/var/www/webroot/ROOT"

View File

@ -1,4 +1,4 @@
version: 0.3 version: 0.2
id: addsftp id: addsftp
type: update type: update
description: An addon to add new SFTP users. It can also manage created user accounts. If SSH is enabled, WP-CLI will attempt to be installed if it is not yet installed. description: An addon to add new SFTP users. It can also manage created user accounts. If SSH is enabled, WP-CLI will attempt to be installed if it is not yet installed.
@ -16,13 +16,6 @@ settings:
caption: Root Directory /var/www/webroot/ROOT/ caption: Root Directory /var/www/webroot/ROOT/
description: "A user-specific directory will be created under /home/username" description: "A user-specific directory will be created under /home/username"
required: false required: false
- type: textfield
name: username
caption: SFTP Username
description: "Enter the desired username (3-32 characters, letters, numbers, and underscores only)"
required: true
regex: ^[a-zA-Z0-9_]{3,32}$
regexText: "Username must be 3-32 characters long and contain only letters, numbers, and underscores"
- type: checkbox - type: checkbox
name: allow name: allow
caption: Accept User Creation caption: Accept User Creation
@ -67,7 +60,7 @@ settings:
globals: globals:
username: ${settings.username} username: "user${fn.random(10000,99999)}"
password: ${fn.password(min)} password: ${fn.password(min)}
sftpHost: ${env.domain} sftpHost: ${env.domain}
sftpPort: 22 sftpPort: 22