# app/policies/evento_notificacao_policy.rb class EventoNotificacaoPolicy < ApplicationPolicy def index? = pode?('notificacao.eventos') def show? = index? def create? = pode?('notificacao.eventos_gerenciar') def new? = create? def update? = create? def edit? = update? # Disparar manda mensagem DE VERDADE, em nome da empresa — chave própria, # separada de configurar o evento. def disparar? = pode?('notificacao.disparar_manual') # Evento de sistema não é apagável: o código dispara por ele. def destroy? create? && record.respond_to?(:apagavel?) && record.apagavel? end class Scope < Scope def resolve user.pode?('notificacao.eventos') ? scope.all : scope.none end end end