# app/policies/perfil_acesso_policy.rb
#
# Quem monta perfil decide o acesso de todo mundo — é a permissão mais sensível
# do sistema, por isso ela é uma chave própria (`admin.perfis`) e não vem junto
# de "gerenciar usuários".
class PerfilAcessoPolicy < ApplicationPolicy
  def index?  = user.pode?('admin.perfis')
  def show?   = index?
  def create? = index?
  def new?    = create?
  def update? = index?
  def edit?   = update?

  # Perfil de sistema ou em uso não sai (ver PerfilAcesso#apagavel?).
  def destroy?
    index? && record.respond_to?(:apagavel?) && record.apagavel?
  end

  class Scope < Scope
    def resolve
      user.pode?('admin.perfis') ? scope.all : scope.none
    end
  end
end
