defmodule MvWeb.UserLive.Show do use MvWeb, :live_view @impl true def render(assigns) do ~H""" <.header> {gettext("User")} {@user.email} <:subtitle>{gettext("This is a user record from your database.")} <:actions> <.button navigate={~p"/users"} aria-label={gettext("Back to users list")}> <.icon name="hero-arrow-left" /> {gettext("Back to users list")} <.button variant="primary" navigate={~p"/users/#{@user}/edit?return_to=show"}> <.icon name="hero-pencil-square" /> {gettext("Edit User")} <.list> <:item title={gettext("ID")}>{@user.id} <:item title={gettext("Email")}>{@user.email} <:item title={gettext("OIDC ID")}>{@user.oidc_id || gettext("Not set")} <:item title={gettext("Password Authentication")}> {if @user.hashed_password, do: gettext("Enabled"), else: gettext("Not enabled")} <:item title={gettext("Linked Member")}> <%= if @user.member do %> <.link navigate={~p"/members/#{@user.member}"} class="text-blue-600 hover:text-blue-800 underline" > <.icon name="hero-users" class="h-4 w-4 inline mr-1" /> {@user.member.first_name} {@user.member.last_name} <% else %> {gettext("No member linked")} <% end %> """ end @impl true def mount(%{"id" => id}, _session, socket) do user = Ash.get!(Mv.Accounts.User, id, domain: Mv.Accounts, load: [:member]) {:ok, socket |> assign(:page_title, gettext("Show User")) |> assign(:user, user)} end end