Class: ProxES::RequestPolicy::Scope

Inherits:
Object
  • Object
show all
Defined in:
lib/proxes/policies/request_policy.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(user, scope) ⇒ Scope

Returns a new instance of Scope.



44
45
46
47
# File 'lib/proxes/policies/request_policy.rb', line 44

def initialize(user, scope)
  @user = user || Ditty::User.anonymous_user
  @scope = scope
end

Instance Attribute Details

#scopeObject (readonly) Also known as: request

Returns the value of attribute scope.



41
42
43
# File 'lib/proxes/policies/request_policy.rb', line 41

def scope
  @scope
end

#userObject (readonly)

Returns the value of attribute user.



41
42
43
# File 'lib/proxes/policies/request_policy.rb', line 41

def user
  @user
end

Instance Method Details

#permissionsObject



58
59
60
# File 'lib/proxes/policies/request_policy.rb', line 58

def permissions
  @permissions ||= Permission.for_user(user).for_request(request)
end

#resolveObject



49
50
51
52
53
54
55
56
# File 'lib/proxes/policies/request_policy.rb', line 49

def resolve
  return permissions.map(&:index) if request.indices == ['*'] || request.indices == ['_all'] || request.indices.blank?

  request.indices.select do |idx|
    idx = idx[1..-1] if idx[0] == '-'
    permissions.find { |perm| perm.index_regex.match idx }
  end
end