Dynamically update user list
This commit is contained in:
parent
a3a835312c
commit
f751af45ef
4 changed files with 28 additions and 8 deletions
2
Gemfile
2
Gemfile
|
|
@ -56,3 +56,5 @@ group :test do
|
||||||
gem "capybara"
|
gem "capybara"
|
||||||
gem "selenium-webdriver"
|
gem "selenium-webdriver"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
gem "open3", "~> 0.2.1"
|
||||||
|
|
|
||||||
|
|
@ -147,6 +147,7 @@ GEM
|
||||||
racc (~> 1.4)
|
racc (~> 1.4)
|
||||||
nokogiri (1.16.7-x86_64-linux)
|
nokogiri (1.16.7-x86_64-linux)
|
||||||
racc (~> 1.4)
|
racc (~> 1.4)
|
||||||
|
open3 (0.2.1)
|
||||||
psych (5.1.2)
|
psych (5.1.2)
|
||||||
stringio
|
stringio
|
||||||
public_suffix (6.0.1)
|
public_suffix (6.0.1)
|
||||||
|
|
@ -251,6 +252,7 @@ DEPENDENCIES
|
||||||
debug
|
debug
|
||||||
importmap-rails
|
importmap-rails
|
||||||
jbuilder
|
jbuilder
|
||||||
|
open3 (~> 0.2.1)
|
||||||
puma (>= 5.0)
|
puma (>= 5.0)
|
||||||
rails (~> 7.1.3, >= 7.1.3.4)
|
rails (~> 7.1.3, >= 7.1.3.4)
|
||||||
selenium-webdriver
|
selenium-webdriver
|
||||||
|
|
|
||||||
|
|
@ -1,2 +1,23 @@
|
||||||
|
require 'open3'
|
||||||
|
|
||||||
module HomeHelper
|
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)
|
||||||
|
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
|
||||||
|
|
||||||
|
users = list_all_users
|
||||||
|
users_with_public_html(users)
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -7,14 +7,9 @@
|
||||||
<div class="section">
|
<div class="section">
|
||||||
<p>Members</p>
|
<p>Members</p>
|
||||||
<ul class="members">
|
<ul class="members">
|
||||||
<li><a href="/~amr">~amr</a></li>
|
<% list_all_users.each do |user| %>
|
||||||
<li>~raf</li>
|
<li><a href="/~<%= user %>"><%= user %></a></li>
|
||||||
<li><a href="/~floppy">~floppy</a></li>
|
<% end %>
|
||||||
<li>~peachy</li>
|
|
||||||
<li><a href="/~gld">~gld</a></li>
|
|
||||||
<li><a href="/~cam">~cam</a></li>
|
|
||||||
<li>~buddyatmos</li>
|
|
||||||
<li>~dkay</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="section">
|
<div class="section">
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue