Files
Reem-Notas/app/policies/application_policy.rb

50 lines
1.1 KiB
Ruby

# app/policies/application_policy.rb
class ApplicationPolicy
attr_reader :user, :record
def initialize(user, record)
@user = user
@record = record
end
def index? = user.pode_consolidar? || user.admin?
def show? = user.pode_consolidar? || user.admin?
def create? = user.pode_consolidar? || user.admin?
def new? = create?
def update? = user.pode_consolidar? || user.admin?
def edit? = update?
def destroy? = user.admin?
# Régua padrão de TODAS as policies: pergunta ao perfil de acesso do usuário
# (User#pode?), não ao papel dele. As chaves estão em Permissao::TODAS.
def pode?(chave)
user.pode?(chave)
end
# Helpers de papel — LEGADO. Continuam aqui porque `admin?` ainda distingue
# tipo de conta em pontos que não são permissão (ex.: escopo de listagem).
# Regra nova não deve usá-los: use `pode?`.
def admin?
user.admin?
end
def admin_ou_gerente?
user.admin? || user.gerente?
end
class Scope
def initialize(user, scope)
@user = user
@scope = scope
end
def resolve
@scope.all
end
private
attr_reader :user, :scope
end
end