Class: PrivatePerson::Permission
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- PrivatePerson::Permission
- Defined in:
- lib/private_person/models/permission.rb
Class Method Summary collapse
- .blocked ⇒ Object
- .by_permissible(permissible) ⇒ Object
- .by_permissor(permissor) ⇒ Object
- .by_relationship_type(relationship_type) ⇒ Object
- .by_wildcard(permissible_type) ⇒ Object
- .legitimate ⇒ Object
- .permissible_types ⇒ Object
Instance Method Summary collapse
Class Method Details
.blocked ⇒ Object
28 29 30 |
# File 'lib/private_person/models/permission.rb', line 28 def self.blocked where('NOT(relationship_type IN (?))', self.permissible_types) end |
.by_permissible(permissible) ⇒ Object
10 11 12 |
# 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) ⇒ Object
6 7 8 |
# 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) ⇒ Object
18 19 20 21 22 23 24 25 26 |
# 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) ⇒ Object
14 15 16 |
# 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 ⇒ Object
32 33 34 |
# File 'lib/private_person/models/permission.rb', line 32 def self.legitimate where('relationship_type IN (?)', self.permissible_types) end |
.permissible_types ⇒ Object
36 37 38 39 40 41 42 43 44 45 46 47 |
# 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 |
Instance Method Details
#existing_types ⇒ Object
49 50 51 52 53 54 55 |
# 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 |