Module: PrivatePerson::Permissible

Defined in:
lib/private_person/models/permissible.rb

Instance Method Summary collapse

Instance Method Details

#acts_as_permissible(params = {}) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/private_person/models/permissible.rb', line 3

def acts_as_permissible(params = {})
  if params[:by].nil?
    raise 'Called acts_as_permissible, but without a :by parameter.'
  end
  class_attribute :by
  self.by = params[:by]

  class_eval do
    has_many :permissions, :as => :permissible
    has_one :permissor, :through => :permissions, :as => :permissor

    def is_public?
      !permissions.by_relationship_type(nil).empty?
    end
  end
end