2016-10-06 19:31:31 -05:00
|
|
|
# frozen_string_literal: true
|
|
|
|
class FtpConfig
|
|
|
|
def build_password_list accounts
|
|
|
|
File.open(password_file, "w+") do |file|
|
|
|
|
Array(accounts).each do |account|
|
|
|
|
file.write "#{account.username}:#{hash_password(account.password)}"
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def build_user_configs accounts
|
|
|
|
Array(accounts).each do |account|
|
|
|
|
File.open("#{config_path}#{account.username}", "w+") do |file|
|
2016-10-06 22:26:37 -05:00
|
|
|
FileUtils.mkdir_p "#{ftp_root}#{account.home_folder}"
|
2016-10-06 19:31:31 -05:00
|
|
|
file.write "local_root=#{ftp_root}#{account.home_folder}"
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
private
|
|
|
|
|
|
|
|
def password_file
|
|
|
|
AppConfig.htpasswd
|
|
|
|
end
|
|
|
|
|
|
|
|
def config_path
|
|
|
|
AppConfig.ftpusers
|
|
|
|
end
|
|
|
|
|
|
|
|
def ftp_root
|
|
|
|
AppConfig.ftproot
|
|
|
|
end
|
|
|
|
|
|
|
|
def hash_password password
|
|
|
|
`openssl passwd -1 -noverify -quiet #{password}`
|
|
|
|
end
|
|
|
|
end
|