Implandação da customização das permissões dos usuarios e das notificaçoes
This commit is contained in:
@@ -1,20 +1,24 @@
|
||||
# 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.
|
||||
# Contatos e grupos (GrupoContatoPolicy herda esta) — quem RECEBE as mensagens.
|
||||
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?
|
||||
def index? = pode?('notificacao.contatos')
|
||||
def show? = index?
|
||||
|
||||
def create? = pode?('notificacao.contatos_gerenciar')
|
||||
def new? = create?
|
||||
def update? = create?
|
||||
def edit? = update?
|
||||
|
||||
# Excluir destinatário é separado de editar: some do histórico de quem recebe.
|
||||
def destroy? = pode?('notificacao.contatos_excluir')
|
||||
|
||||
# Grupos do WhatsApp carregados sob demanda pelo form.
|
||||
def grupos_whatsapp? = create?
|
||||
|
||||
class Scope < Scope
|
||||
def resolve = scope.all
|
||||
def resolve
|
||||
user.pode?('notificacao.contatos') ? scope.all : scope.none
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user