Sha256: b81d9374e0e3c0e2a1adfe5c18f8486338e94276f7e48cdabf5f874c00cbf02c
Contents?: true
Size: 823 Bytes
Versions: 7
Compression:
Stored size: 823 Bytes
Contents
require 'rolify/adapters/base' module Rolify module Adapter class ResourceAdapter < ResourceAdapterBase 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 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 end end end
Version data entries
7 entries across 7 versions & 2 rubygems