26 lines
738 B
Ruby
26 lines
738 B
Ruby
# 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
|