frzn.dev/app/helpers/home_helper.rb
2024-08-13 17:12:09 +01:00

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