Class: Rolify::Adapter::ResourceAdapter

Inherits:
ResourceAdapterBase show all
Defined in:
lib/rolify/adapters/mongoid/resource_adapter.rb,
lib/rolify/adapters/active_record/resource_adapter.rb

Instance Method Summary collapse

Methods inherited from Base

create, #initialize, #role_class, #role_table, #user_class

Constructor Details

This class inherits a constructor from Rolify::Adapter::Base

Instance Method Details

#in(relation, user, role_names) ⇒ Object



19
20
21
22
23
24
# File 'lib/rolify/adapters/mongoid/resource_adapter.rb', line 19

def in(resources, user, role_names)
  roles = user.roles.where(:name.in => Array(role_names))
  return [] if resources.empty? || roles.empty?
  resources.delete_if { |resource| (resource.applied_roles & roles).empty? }
  resources
end

#resources_find(roles_table, relation, role_name) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/rolify/adapters/mongoid/resource_adapter.rb', line 6

def resources_find(roles_table, relation, role_name)
  roles = roles_table.classify.constantize.where(:name.in => Array(role_name), :resource_type => relation.to_s)
  resources = []
  roles.each do |role|
    if role.resource_id.nil?
      resources += relation.all
    else
      resources << role.resource
    end
  end
  resources.compact.uniq
end