30 lines
643 B
Ruby
30 lines
643 B
Ruby
require 'open3'
|
|
|
|
module HomeHelper
|
|
|
|
def list_all_users
|
|
stdout, stderr, status = Open3.capture3('getent', 'passwd')
|
|
return [] unless status.success?
|
|
valid_users = stdout.split("\n").select { |user| user.start_with?(/\w/) }.map(&:split).map(&:first)
|
|
return valid_users.map do |user|
|
|
user.split(':')[0]
|
|
end
|
|
end
|
|
|
|
def users_with_public_html(users)
|
|
users.select do |user|
|
|
home_dir = Dir.home(user)
|
|
File.exist?(File.join(home_dir, 'public_html'))
|
|
end
|
|
end
|
|
|
|
def get_members
|
|
begin
|
|
users = list_all_users
|
|
rescue
|
|
[]
|
|
else
|
|
users_with_public_html(users)
|
|
end
|
|
end
|
|
end
|