class PrivatePerson::Permission

Public Class Methods

blocked() click to toggle source
# File lib/private_person/models/permission.rb, line 28
def self.blocked
  where('NOT(relationship_type IN (?))', self.permissible_types)
end
by_permissible(permissible) click to toggle source
# File lib/private_person/models/permission.rb, line 10
def self.by_permissible(permissible)
  where("permissible_type = ? AND permissible_id = ?", permissible.class.name, permissible.id)
end
by_permissor(permissor) click to toggle source
# File lib/private_person/models/permission.rb, line 6
def self.by_permissor(permissor)
  where("permissor_type = ? AND permissor_id = ?", permissor.class.name, permissor.id)
end
by_relationship_type(relationship_type) click to toggle source
# File lib/private_person/models/permission.rb, line 18
def self.by_relationship_type(relationship_type)
  if relationship_type == 'public' or relationship_type.nil?
    return where("relationship_type = 'public'")
  end
  if self.permissible_types.include? relationship_type
    return where("relationship_type = ? OR relationship_type = 'public'", relationship_type)
  end
  return where(0)
end
by_wildcard(permissible_type) click to toggle source
# File lib/private_person/models/permission.rb, line 14
def self.by_wildcard(permissible_type)
  where(:permissible_type => permissible_type, :permissible_id => nil)
end
legitimate() click to toggle source
# File lib/private_person/models/permission.rb, line 32
def self.legitimate
  where('relationship_type IN (?)', self.permissible_types)
end
permissible_types() click to toggle source
# File lib/private_person/models/permission.rb, line 36
def self.permissible_types
  permissible_types = ['public']
  for record in self.group('permissor_type').group('permissor_id')
    permissor = record.permissor_type.constantize.find(record.permissor_id)
    unless permissor.nil?
      for method in permissor.class.of
        permissible_types << method.to_s
      end
    end
  end
  permissible_types.compact
end

Public Instance Methods

existing_types() click to toggle source
# File lib/private_person/models/permission.rb, line 49
def existing_types
  existing_types = ['public']
  for method in permissor.class.of
    existing_types << method.to_s
  end
  existing_types
end