Method: Policy::Base#resolve_query

Defined in:
lib/pundit_roles/policy/base.rb

#resolve_query(query) ⇒ Object

Retrieves the permitted roles for the current query, checks if user is one or more of these roles and return a hash of attributes that the user has access to.

Parameters:

  • query (Symbol, String)

    the predicate method to check on the policy (e.g. :show?)



27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/pundit_roles/policy/base.rb', line 27

def resolve_query(query)
  permitted_roles = public_send(query)
  return permitted_roles if permitted_roles.is_a? TrueClass or permitted_roles.is_a? FalseClass

  validate_permission_type(permitted_roles, query)
  permissions = self.class.permissions

  if guest?
    return handle_guest_options(permitted_roles, permissions)
  end

  current_roles = determine_current_roles(permitted_roles)
  return unique_merge(current_roles, permissions)
end