<.header> {gettext("Listing Roles")} <:subtitle> {gettext("Manage user roles and their permission sets.")} <:actions> <%= if can?(@current_user, :create, Mv.Authorization.Role) do %> <.button variant="primary" navigate={~p"/admin/roles/new"}> <.icon name="hero-plus" /> {gettext("New Role")} <% end %> <.table id="roles" rows={@roles} row_click={fn role -> JS.navigate(~p"/admin/roles/#{role}") end} > <:col :let={role} label={gettext("Name")}>
{role.name} <%= if role.is_system_role do %> {gettext("System Role")} <% end %>
<:col :let={role} label={gettext("Description")}> <%= if role.description do %> {role.description} <% else %> {gettext("No description")} <% end %> <:col :let={role} label={gettext("Permission Set")}> {role.permission_set_name} <:col :let={role} label={gettext("Type")}> <%= if role.is_system_role do %> {gettext("System")} <% else %> {gettext("Custom")} <% end %> <:col :let={role} label={gettext("Users")}> {get_user_count(role, @user_counts)} <:action :let={role}>
<.link navigate={~p"/admin/roles/#{role}"}>{gettext("Show")}
<%= if can?(@current_user, :update, Mv.Authorization.Role) do %> <.link navigate={~p"/admin/roles/#{role}/edit"} class="btn btn-ghost btn-sm"> <.icon name="hero-pencil" class="size-4" /> {gettext("Edit")} <% end %> <:action :let={role}> <%= if can?(@current_user, :destroy, Mv.Authorization.Role) and not role.is_system_role do %> <.link phx-click={JS.push("delete", value: %{id: role.id}) |> hide("#row-#{role.id}")} data-confirm={gettext("Are you sure?")} class="btn btn-ghost btn-sm text-error" > <.icon name="hero-trash" class="size-4" /> {gettext("Delete")} <% else %>
<% end %>