25 lines
715 B
Ruby
25 lines
715 B
Ruby
# app/policies/perfil_acesso_policy.rb
|
|
#
|
|
# Quem monta perfil decide o acesso de todo mundo — é a permissão mais sensível
|
|
# do sistema, por isso ela é uma chave própria (`admin.perfis`) e não vem junto
|
|
# de "gerenciar usuários".
|
|
class PerfilAcessoPolicy < ApplicationPolicy
|
|
def index? = user.pode?('admin.perfis')
|
|
def show? = index?
|
|
def create? = index?
|
|
def new? = create?
|
|
def update? = index?
|
|
def edit? = update?
|
|
|
|
# Perfil de sistema ou em uso não sai (ver PerfilAcesso#apagavel?).
|
|
def destroy?
|
|
index? && record.respond_to?(:apagavel?) && record.apagavel?
|
|
end
|
|
|
|
class Scope < Scope
|
|
def resolve
|
|
user.pode?('admin.perfis') ? scope.all : scope.none
|
|
end
|
|
end
|
|
end
|