Implantação da geração de mensagem de forma livre e mudança na engine de mensagem
This commit is contained in:
20
app/policies/contato_policy.rb
Normal file
20
app/policies/contato_policy.rb
Normal file
@@ -0,0 +1,20 @@
|
||||
# app/policies/contato_policy.rb
|
||||
#
|
||||
# Contatos e grupos são a lista de quem recebe mensagem em nome da empresa —
|
||||
# admin e gerente administram, operador não.
|
||||
#
|
||||
# ⚠️ Cada action nova do controller precisa de um `<action>?` aqui, senão o
|
||||
# `authorize` estoura.
|
||||
class ContatoPolicy < ApplicationPolicy
|
||||
def index? = admin_ou_gerente?
|
||||
def show? = admin_ou_gerente?
|
||||
def create? = admin_ou_gerente?
|
||||
def new? = create?
|
||||
def update? = admin_ou_gerente?
|
||||
def edit? = update?
|
||||
def destroy? = admin?
|
||||
|
||||
class Scope < Scope
|
||||
def resolve = scope.all
|
||||
end
|
||||
end
|
||||
23
app/policies/evento_notificacao_policy.rb
Normal file
23
app/policies/evento_notificacao_policy.rb
Normal file
@@ -0,0 +1,23 @@
|
||||
# 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?
|
||||
|
||||
# Evento de sistema não se apaga: o código dispara por `chave` e ficaria
|
||||
# chamando no vazio. A tela oferece desativar.
|
||||
def destroy?
|
||||
admin? && record.respond_to?(:apagavel?) && record.apagavel?
|
||||
end
|
||||
|
||||
class Scope < Scope
|
||||
def resolve = scope.all
|
||||
end
|
||||
end
|
||||
3
app/policies/grupo_contato_policy.rb
Normal file
3
app/policies/grupo_contato_policy.rb
Normal file
@@ -0,0 +1,3 @@
|
||||
# app/policies/grupo_contato_policy.rb — ver ContatoPolicy.
|
||||
class GrupoContatoPolicy < ContatoPolicy
|
||||
end
|
||||
12
app/policies/notificacao_envio_policy.rb
Normal file
12
app/policies/notificacao_envio_policy.rb
Normal file
@@ -0,0 +1,12 @@
|
||||
# app/policies/notificacao_envio_policy.rb
|
||||
#
|
||||
# Log de envios: o corpo das mensagens passa por aqui, então leitura é de
|
||||
# admin/gerente. Nada é editável — o log é registro, não cadastro.
|
||||
class NotificacaoEnvioPolicy < ApplicationPolicy
|
||||
def index? = admin_ou_gerente?
|
||||
def show? = admin_ou_gerente?
|
||||
|
||||
class Scope < Scope
|
||||
def resolve = scope.all
|
||||
end
|
||||
end
|
||||
13
app/policies/whatsapp_sessao_policy.rb
Normal file
13
app/policies/whatsapp_sessao_policy.rb
Normal file
@@ -0,0 +1,13 @@
|
||||
# app/policies/whatsapp_sessao_policy.rb
|
||||
#
|
||||
# Parear o WhatsApp por QR é ligar o número da empresa a este servidor, e
|
||||
# desconectar derruba o canal para todo mundo. Só ADM.
|
||||
class WhatsappSessaoPolicy < ApplicationPolicy
|
||||
def show? = admin?
|
||||
def desconectar? = admin?
|
||||
def testar? = admin?
|
||||
|
||||
class Scope < Scope
|
||||
def resolve = scope.all
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user