- ConfiguracaoPolicy (e UserPolicy) chamavam admin_ou_gerente?/admin? que não existiam -> helpers movidos para ApplicationPolicy (toda policy herda) - View de usuários usava helper badge_role inexistente -> criado em ApplicationHelper (badge por papel, cores do navbar) Spec: ConfiguracaoPolicy. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
42 lines
835 B
Ruby
42 lines
835 B
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?
|
|
|
|
# Helpers de papel disponíveis para todas as policies (delegam para o User)
|
|
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
|