Some checks failed
continuous-integration/drone/push Build is failing
No need to keep them in two places at the same time. We can fetch them from LDAP whenever we want to do something with them.
191 lines
5.8 KiB
Plaintext
191 lines
5.8 KiB
Plaintext
<%= render HeaderComponent.new(title: "User: #{@user.address}") %>
|
|
|
|
<%= render MainSimpleComponent.new do %>
|
|
<div class="mb-12 sm:flex sm:flex-row sm:gap-x-8">
|
|
<section class="sm:flex-1">
|
|
<h3>Account</h3>
|
|
<table class="divided">
|
|
<tbody>
|
|
<tr>
|
|
<th>ID</th>
|
|
<td><%= @user.id %></td>
|
|
</tr>
|
|
<tr>
|
|
<th>Created at</th>
|
|
<td><%= @user.created_at.strftime("%Y-%m-%d (%H:%M UTC)") %></td>
|
|
</tr>
|
|
<tr>
|
|
<th>Confirmed at</th>
|
|
<td>
|
|
<% if @user.confirmed_at %>
|
|
<%= @user.confirmed_at.strftime("%Y-%m-%d (%H:%M UTC)") %>
|
|
<% else %>
|
|
<%= badge "pending", :yellow %>
|
|
<% end %>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Email</th>
|
|
<td><%= @user.email %></td>
|
|
</tr>
|
|
<tr>
|
|
<th>Roles</th>
|
|
<td><%= @user.is_admin? ? badge("admin", :red) : "—" %></td>
|
|
</tr>
|
|
<tr>
|
|
<th>Invited by</th>
|
|
<td>
|
|
<% if @user.inviter %>
|
|
<%= link_to @user.inviter.address, admin_user_path(@user.inviter.address), class: 'ks-text-link' %>
|
|
<% else %>—<% end %>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Invitations available</th>
|
|
<td>
|
|
<%= @user.invitations.count %>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th class="align-top">Invited users</th>
|
|
<td class="align-top">
|
|
<% if @user.invitees.length > 0 %>
|
|
<ul class="mb-0">
|
|
<% @user.invitees.order(cn: :asc).each do |invitee| %>
|
|
<li class="leading-none mb-2 last:mb-0"><%= link_to invitee.address, admin_user_path(invitee.address), class: 'ks-text-link' %></li>
|
|
<% end %>
|
|
</ul>
|
|
<% else %>—<% end %>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</section>
|
|
|
|
<section class="sm:flex-1 sm:pt-0">
|
|
<h3>LDAP<h3>
|
|
<p>
|
|
<img src="data:image/png;base64,<%= @avatar %>" class="h-48 w-48" />
|
|
</p>
|
|
<!-- <h3>Actions</h3> -->
|
|
</section>
|
|
</div>
|
|
|
|
<section>
|
|
<h3>Services</h3>
|
|
<table class="divided">
|
|
<thead>
|
|
<tr>
|
|
<th>Name</th>
|
|
<th>Enabled</th>
|
|
<th></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<% if Setting.discourse_enabled %>
|
|
<tr>
|
|
<td>Discourse</td>
|
|
<td>
|
|
<%= render FormElements::ToggleComponent.new(
|
|
enabled: @services_enabled.include?("discourse"),
|
|
input_enabled: false
|
|
) %>
|
|
</td>
|
|
<td class="text-right">
|
|
<%= link_to "Open profile", "#{Setting.discourse_public_url}/u/#{@user.cn}/summary", class: "btn-sm btn-gray" %>
|
|
</td>
|
|
</tr>
|
|
<% end %>
|
|
<% if Setting.gitea_enabled %>
|
|
<tr>
|
|
<td>Gitea</td>
|
|
<td>
|
|
<%= render FormElements::ToggleComponent.new(
|
|
enabled: @services_enabled.include?("gitea"),
|
|
input_enabled: false
|
|
) %>
|
|
</td>
|
|
<td class="text-right">
|
|
<%= link_to "Open profile", "#{Setting.gitea_public_url}/#{@user.cn}", class: "btn-sm btn-gray" %>
|
|
</td>
|
|
</tr>
|
|
<% end %>
|
|
<% if Setting.mastodon_enabled %>
|
|
<tr>
|
|
<td>Mastodon</td>
|
|
<td>
|
|
<%= render FormElements::ToggleComponent.new(
|
|
enabled: @services_enabled.include?("mastodon"),
|
|
input_enabled: false
|
|
) %>
|
|
</td>
|
|
<td class="text-right">
|
|
<%= link_to "Open profile", "#{Setting.mastodon_public_url}/@#{@user.cn}", class: "btn-sm btn-gray" %>
|
|
</td>
|
|
</tr>
|
|
<% end %>
|
|
<% if Setting.mediawiki_enabled %>
|
|
<tr>
|
|
<td>MediaWiki</td>
|
|
<td>
|
|
<%= render FormElements::ToggleComponent.new(
|
|
enabled: @services_enabled.include?("mediawiki"),
|
|
input_enabled: false
|
|
) %>
|
|
</td>
|
|
<td class="text-right">
|
|
<%= link_to "Open profile", "#{Setting.mediawiki_public_url}/Special:Contributions/#{@user.cn}", class: "btn-sm btn-gray" %>
|
|
</td>
|
|
</tr>
|
|
<% end %>
|
|
<% if Setting.ejabberd_enabled %>
|
|
<tr>
|
|
<td>XMPP (ejabberd)</td>
|
|
<td>
|
|
<%= render FormElements::ToggleComponent.new(
|
|
enabled: @services_enabled.include?("xmpp"),
|
|
input_enabled: false
|
|
) %>
|
|
</td>
|
|
<td class="text-right">
|
|
<% if Setting.ejabberd_admin_url.present? %>
|
|
<%= link_to "Open profile", "#{Setting.ejabberd_admin_url}/server/#{@user.ou}/user/#{@user.cn}/", class: "btn-sm btn-gray" %>
|
|
<% end %>
|
|
</td>
|
|
</tr>
|
|
<% end %>
|
|
</tbody>
|
|
</table>
|
|
</section>
|
|
|
|
<% if Setting.lndhub_admin_enabled? && @user.confirmed? %>
|
|
<section>
|
|
<h3>LndHub</h3>
|
|
<% if @lndhub_user %>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Account</th>
|
|
<th>Balance</th>
|
|
<th>Incoming</th>
|
|
<th>Outgoing</th>
|
|
<th>Fees</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td><%= @user.ln_account %></td>
|
|
<td><%= number_with_delimiter @lndhub_user.balance %> sats</td>
|
|
<td><%= number_with_delimiter @lndhub_user.sum_incoming %> sats</td>
|
|
<td><%= number_with_delimiter @lndhub_user.sum_outgoing %> sats</td>
|
|
<td><%= number_with_delimiter @lndhub_user.sum_fees %> sats</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<% else %>
|
|
<p>No LndHub user found for account <strong class="font-mono"><%= @user.ln_account %></strong>.
|
|
<% end %>
|
|
</section>
|
|
<% end %>
|
|
<% end %>
|