Files
Reem-Notas/app/policies/application_policy.rb
2026-06-10 20:12:20 -03:00

60 lines
969 B
Ruby

# app/policies/application_policy.rb
class ApplicationPolicy
attr_reader :user, :record
def initialize(user, record)
raise Pundit::NotAuthorizedError, 'Você precisa estar logado.' unless user
@user = user
@record = record
end
def index? = false
def show? = false
def create? = false
def new? = create?
def update? = false
def edit? = update?
def destroy? = false
protected
def admin?
user.admin?
end
def gerente?
user.gerente?
end
def operador?
user.operador?
end
def motorista?
user.motorista?
end
def admin_ou_gerente?
admin? || gerente?
end
def admin_gerente_ou_operador?
admin? || gerente? || operador?
end
class Scope
def initialize(user, scope)
@user = user
@scope = scope
end
def resolve
raise NotImplementedError, "#{self.class}#resolve não implementado"
end
private
attr_reader :user, :scope
end
end