class Ddr::Auth::Roles::RoleSetQuery
RoleSet
query interface
@api private
Attributes
criteria[R]
role_set[R]
Public Class Methods
new(role_set)
click to toggle source
# File lib/ddr/auth/roles/role_set_query.rb, line 15 def initialize(role_set) @role_set = role_set @criteria = {} end
Public Instance Methods
agent(a)
click to toggle source
# File lib/ddr/auth/roles/role_set_query.rb, line 37 def agent(a) where(agent: a) end
Also aliased as: group
in_policy_scope()
click to toggle source
# File lib/ddr/auth/roles/role_set_query.rb, line 29 def in_policy_scope scope(Roles::POLICY_SCOPE) end
in_resource_scope()
click to toggle source
# File lib/ddr/auth/roles/role_set_query.rb, line 33 def in_resource_scope scope(Roles::RESOURCE_SCOPE) end
merge(other_query)
click to toggle source
# File lib/ddr/auth/roles/role_set_query.rb, line 47 def merge(other_query) where(other_query.criteria) end
result()
click to toggle source
# File lib/ddr/auth/roles/role_set_query.rb, line 51 def result matching_roles = role_set.select { |role| matches_all?(role) } RoleSet.new(roles: matching_roles) end
role_type(r)
click to toggle source
# File lib/ddr/auth/roles/role_set_query.rb, line 42 def role_type(r) where(role_type: r) end
Also aliased as: type
scope(s)
click to toggle source
# File lib/ddr/auth/roles/role_set_query.rb, line 25 def scope(s) where(scope: s) end
where(conditions={})
click to toggle source
# File lib/ddr/auth/roles/role_set_query.rb, line 20 def where(conditions={}) criteria.merge!(conditions) self end
Private Instance Methods
matches_all?(role)
click to toggle source
# File lib/ddr/auth/roles/role_set_query.rb, line 63 def matches_all?(role) criteria.all? { |key, value| matches_one?(role, key, value) } end
matches_one?(role, key, value)
click to toggle source
# File lib/ddr/auth/roles/role_set_query.rb, line 67 def matches_one?(role, key, value) Array(value).include? role.send(key) end
permissions_for_agents_in_scope(agents, scope)
click to toggle source
Return a list of the permissions granted to any of the agents in the given scope
# File lib/ddr/auth/roles/role_set_query.rb, line 59 def permissions_for_agents_in_scope(agents, scope) agent(agents).scope(scope).permissions end