# 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