Implandação da customização das permissões dos usuarios e das notificaçoes
This commit is contained in:
@@ -1,23 +1,25 @@
|
||||
# app/policies/evento_notificacao_policy.rb
|
||||
#
|
||||
# Eventos definem o que a empresa dispara e para quem — inclusive o botão de
|
||||
# disparo manual, que manda mensagem de verdade. Só ADM.
|
||||
class EventoNotificacaoPolicy < ApplicationPolicy
|
||||
def index? = admin?
|
||||
def show? = admin?
|
||||
def create? = admin?
|
||||
def new? = create?
|
||||
def update? = admin?
|
||||
def edit? = update?
|
||||
def disparar? = admin?
|
||||
def index? = pode?('notificacao.eventos')
|
||||
def show? = index?
|
||||
|
||||
# Evento de sistema não se apaga: o código dispara por `chave` e ficaria
|
||||
# chamando no vazio. A tela oferece desativar.
|
||||
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?
|
||||
admin? && record.respond_to?(:apagavel?) && record.apagavel?
|
||||
create? && record.respond_to?(:apagavel?) && record.apagavel?
|
||||
end
|
||||
|
||||
class Scope < Scope
|
||||
def resolve = scope.all
|
||||
def resolve
|
||||
user.pode?('notificacao.eventos') ? scope.all : scope.none
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user