<.header>
{gettext("Listing Users")}
<:actions>
<%= if can?(@current_user, :create, Mv.Accounts.User) do %>
<.button variant="primary" navigate={~p"/users/new"} data-testid="user-new">
<.icon name="hero-plus" /> {gettext("New User")}
<% end %>
<.table
id="users"
rows={@users}
row_id={fn user -> "row-#{user.id}" end}
row_click={fn user -> JS.navigate(~p"/users/#{user}") end}
row_tooltip={gettext("Click for user details")}
sort_field={@sort_field}
sort_order={@sort_order}
>
<:col
:let={user}
sort_field={:email}
label={
sort_button(%{
field: :email,
label: gettext("Email"),
sort_field: @sort_field,
sort_order: @sort_order
})
}
>
{user.email}
<:col :let={user} label={gettext("Role")}>
{user.role.name}
<:col :let={user} label={gettext("Linked Member")}>
<%= if user.member do %>
{MvWeb.Helpers.MemberHelpers.display_name(user.member)}
<% else %>
{gettext("No member linked")}
<% end %>
<:col :let={user} label={gettext("Password")}>
<%= if MvWeb.Helpers.UserHelpers.has_password?(user) do %>
{gettext("Enabled")}
<% else %>
—
<% end %>
<:col :let={user} label={gettext("OIDC")}>
<%= if MvWeb.Helpers.UserHelpers.has_oidc?(user) do %>
{gettext("Linked")}
<% else %>
—
<% end %>