docbrown/app/views/admin/users/show/overview/_roles.html.erb
2022-11-11 15:29:48 +02:00

48 lines
3.1 KiB
Text

<header class="mb-4">
<h2 class="crayons-subtitle-2 mb-1 flex items-center">
<%= crayons_icon_tag(:badge, title: t("views.admin.users.overview.roles.icon"), aria_hidden: true, class: "mr-2") %>
<%= t("views.admin.users.overview.roles.subtitle") %>
</h2>
<p class="color-secondary">
<%= t("views.admin.users.overview.roles.desc") %>
<a href="https://admin.forem.com/docs/forem-basics/user-roles" rel="noopener noreferer" target="_blank" class="c-link c-link--branded" aria-label="<%= t("views.admin.users.overview.roles.aria_learn") %>"><%= t("views.admin.users.overview.learn") %></a>
</p>
</header>
<% unless @user.roles.any? %>
<div class="flex justify-between items-center">
<p><%= t("views.admin.users.overview.roles.empty") %></p>
<button class="c-btn c-btn--secondary whitespace-nowrap" type="button" data-modal-title="<%= t("views.admin.users.actions.assign_role.heading") %>" data-modal-size="m" data-modal-content-selector="#add-role-modal" data-form-action="<%= user_status_admin_user_path(@user) %>">
<%= t("views.admin.users.overview.roles.button") %>
</button>
</div>
<% else %>
<ul class="flex flex-wrap gap-2">
<% @user.roles.reject { |role| role.name == "tag_moderator" }.each do |role| %>
<li>
<% if role.name == "banned" || role.name == "suspended" || role.name == "super_admin" || @user.id == current_user.id %>
<button
class="c-pill c-pill--description-icon crayons-tooltip__activator cursor-help"
type="button"
aria-disabled="true">
<%= crayons_icon_tag(:lock, class: "c-pill__description-icon", aria_hidden: true, width: 18, height: 18) %>
<%= t("views.admin.users.overview.roles.name.#{role.name}", default: role.resource_name ? role.resource_name.to_s : role_display_name(role)) %>
<span data-testid="tooltip" class="crayons-tooltip__content"><%= t("views.admin.users.overview.roles.locked") %></span>
</button>
<% else %>
<%= button_to url_for(action: :destroy, user_id: @user.id, role: role.name.to_sym, resource_type: role.resource_type), method: :delete, data: { confirm: t("views.admin.users.overview.roles.remove_confirm") }, class: "c-pill c-pill--action-icon" do %>
<span class="screen-reader-only"><%= t("views.admin.users.overview.roles.remove") %></span>
<%= t("views.admin.users.overview.roles.name.#{role.name}", default: role.resource_name ? role.resource_name.to_s : role_display_name(role)) %>
<%= crayons_icon_tag(:x, class: "c-pill__action-icon", aria_hidden: true, width: 18, height: 18) %>
<% end %>
<% end %>
</li>
<% end %>
<li>
<button class="c-btn c-btn--secondary whitespace-nowrap" type="button" data-modal-title="<%= t("views.admin.users.actions.assign_role.heading") %>" data-modal-size="small" data-modal-content-selector="#add-role-modal" data-form-action="<%= user_status_admin_user_path(@user) %>">
<%= t("views.admin.users.overview.roles.button") %>
</button>
</li>
</ul>
<% end %>
<%= render "admin/users/modals/add_role_modal" %>