Module: Monarchy::ActsAsUser::ClassMethods

Defined in:
lib/monarchy/acts_as_user.rb

Instance Method Summary collapse

Instance Method Details

#acts_as_userObject



7
8
9
10
11
12
13
14
15
16
17
# File 'lib/monarchy/acts_as_user.rb', line 7

def acts_as_user
  has_many :members, class_name: "::#{Monarchy.member_class}", dependent: :destroy
  has_many :hierarchies, through: :members, class_name: "::#{Monarchy.hierarchy_class}"

  scope :accessible_for, (lambda do |user|
    where(id: Monarchy.hierarchy_class.accessible_for(user)
                                 .joins(members: [:user]).select(:user_id)).union(where(id: user.id))
  end)

  include Monarchy::ActsAsUser::InstanceMethods
end