Module: Monarchy::ActsAsMember::SupportMethods

Defined in:
lib/monarchy/acts_as_member.rb

Instance Method Summary collapse

Instance Method Details

#include_callbacksObject



31
32
33
# File 'lib/monarchy/acts_as_member.rb', line 31

def include_callbacks
  after_destroy :revoke_access, if: :members_access_revoke?
end

#include_relationshipsObject



41
42
43
44
45
46
47
# File 'lib/monarchy/acts_as_member.rb', line 41

def include_relationships
  has_many :members_roles, dependent: :destroy, class_name: 'Monarchy::MembersRole'
  has_many :roles, -> { order(level: :desc) }, through: :members_roles, class_name: "::#{Monarchy.role_class}"

  belongs_to :user, class_name: "::#{Monarchy.user_class}"
  belongs_to :hierarchy, class_name: "::#{Monarchy.hierarchy_class}"
end

#include_scopesObject



24
25
26
27
28
29
# File 'lib/monarchy/acts_as_member.rb', line 24

def include_scopes
  scope :accessible_for, (lambda do |user|
    Monarchy::Validators.user(user)
    where(hierarchy: Monarchy.hierarchy_class.accessible_for(user))
  end)
end

#include_validatorsObject



35
36
37
38
39
# File 'lib/monarchy/acts_as_member.rb', line 35

def include_validators
  validates :user_id, uniqueness: { scope: :hierarchy_id }
  validates :user, presence: true
  validate :hierarchy_or_resource
end