module Roles::Role::ClassMethods

Public Instance Methods

with_role(role_name, resource = nil) click to toggle source
# File lib/roles/role.rb, line 8
def with_role(role_name, resource = nil)
  if resource.nil?
    self.includes(role_table).where("#{role_table}.name LIKE '%s'", role_name.to_s).where("#{role_table}.resource_type IS NULL").where("#{role_table}.resource_id IS NULL")
  elsif resource.is_a? Class
    self.includes(role_table).where("#{role_table}.name LIKE '%s'", role_name.to_s).where("#{role_table}.resource_type LIKE '%s'", resource.to_s).where("#{role_table}.resource_id IS NULL")
  else
    self.includes(role_table).where("#{role_table}.name LIKE '%s'", role_name.to_s).where("#{role_table}.resource_type LIKE '%s'", resource.class.to_s).where("#{role_table}.resource_id = %s", resource.id)
  end
end