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