Class: Permission
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- 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
30 31 32 |
# File 'lib/private_person/models/permission.rb', line 30 def self.blocked where('NOT(relationship_type IN (?))', self.permissible_types) end |
.by_permissible(permissible) ⇒ Object
12 13 14 |
# File 'lib/private_person/models/permission.rb', line 12 def self.by_permissible(permissible) where("permissible_type = ? AND permissible_id = ?", permissible.class.name, permissible.id) end |
.by_permissor(permissor) ⇒ Object
8 9 10 |
# File 'lib/private_person/models/permission.rb', line 8 def self.by_permissor(permissor) where("permissor_type = ? AND permissor_id = ?", permissor.class.name, permissor.id) end |
.by_relationship_type(relationship_type) ⇒ Object
20 21 22 23 24 25 26 27 28 |
# File 'lib/private_person/models/permission.rb', line 20 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
16 17 18 |
# File 'lib/private_person/models/permission.rb', line 16 def self.by_wildcard(permissible_type) where(:permissible_type => permissible_type, :permissible_id => nil) end |
.legitimate ⇒ Object
34 35 36 |
# File 'lib/private_person/models/permission.rb', line 34 def self.legitimate where('relationship_type IN (?)', self.permissible_types) end |
.permissible_types ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/private_person/models/permission.rb', line 38 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
51 52 53 54 55 56 57 |
# File 'lib/private_person/models/permission.rb', line 51 def existing_types existing_types = ['public'] for method in permissor.class.of existing_types << method.to_s end existing_types end |