%# app/views/admin/perfis_acesso/_form.html.erb
O ADM marca o que o perfil enxerga. As caixas vêm agrupadas por área do
catálogo (Permissao.por_grupo) e cada uma traz a descrição do EFEITO real —
"Registrar pagamento" sem a linha de baixo não diz se inclui estornar. %>
<%= form_with model: [:admin, perfil], url: (perfil.persisted? ? admin_perfil_path(perfil) : admin_perfis_path),
data: { turbo: false }, class: 'space-y-6' do |f| %>
<% if perfil.errors.any? %>
<%= icone :erro, cor: 'text-red-400' %> Não foi possível salvar
<% perfil.errors.full_messages.each do |msg| %>
<%= msg %>
<% end %>
<% end %>
<%# ── Identificação ──────────────────────────────────── %>
<%= icone :alerta, cor: 'text-amber-400' %> Perfil que vem com o sistema: pode ser editado e desativado, mas não excluído.
<% end %>
<%# ── Permissões ─────────────────────────────────────────
O campo vazio antes das caixas é obrigatório: sem ele, desmarcar TUDO faria
o parâmetro sumir do POST e o controller entenderia "não mexeu". %>
<%= hidden_field_tag 'perfil_acesso[permissoes][]', '' %>
<% marcadas = perfil.permissoes_validas %>
<% Permissao.por_grupo.each do |grupo, itens| %>