Sha256: a998e9c9352c0041467af6bdca8501bc0ed0b4703ebc8280032a5ac6924c355d

Contents?: true

Size: 611 Bytes

Versions: 7

Compression:

Stored size: 611 Bytes

Contents

# frozen_string_literal: true
require 'proxes/policies/application_policy'

module ProxES
  class PermissionPolicy < ApplicationPolicy
    def create?
      user && user.super_admin?
    end

    def list?
      create?
    end

    def read?
      create?
    end

    def update?
      read?
    end

    def delete?
      create?
    end

    def permitted_attributes
      [:verb, :pattern, :role_id]
    end

    class Scope < ApplicationPolicy::Scope
      def resolve
        if user && user.super_admin?
          scope
        else
          scope.where(id: -1)
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
proxes-0.3.5 lib/proxes/policies/permission_policy.rb
proxes-0.3.3 lib/proxes/policies/permission_policy.rb
proxes-0.3.2 lib/proxes/policies/permission_policy.rb
proxes-0.3.1 lib/proxes/policies/permission_policy.rb
proxes-0.3.0 lib/proxes/policies/permission_policy.rb
proxes-0.2.0 lib/proxes/policies/permission_policy.rb
proxes-0.1.0 lib/proxes/policies/permission_policy.rb