Implandação da customização das permissões dos usuarios e das notificaçoes

This commit is contained in:
2026-08-26 17:24:25 -03:00
parent 808c2c7545
commit 5bb5d74e22
71 changed files with 2487 additions and 269 deletions

View File

@@ -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