Module: Monarchy::ActsAsMember::SupportMethods
- Defined in:
- lib/monarchy/acts_as_member.rb
Instance Method Summary collapse
- #include_callbacks ⇒ Object
- #include_relationships ⇒ Object
- #include_scopes ⇒ Object
- #include_validators ⇒ Object
Instance Method Details
#include_callbacks ⇒ Object
37 38 39 |
# File 'lib/monarchy/acts_as_member.rb', line 37 def include_callbacks after_destroy :revoke_access, if: :members_access_revoke? end |
#include_relationships ⇒ Object
47 48 49 50 51 52 53 |
# File 'lib/monarchy/acts_as_member.rb', line 47 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_scopes ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/monarchy/acts_as_member.rb', line 25 def include_scopes scope :accessible_for, (lambda do |user| Monarchy::Validators.user(user) where(hierarchy: Monarchy.hierarchy_class.accessible_for(user)) end) scope :with_access_to, (lambda do |resource| Monarchy::Validators.resource(resource) where(id: with_ancestors_access(resource).union(with_descendants_access(resource))) end) end |
#include_validators ⇒ Object
41 42 43 44 45 |
# File 'lib/monarchy/acts_as_member.rb', line 41 def include_validators validates :user_id, uniqueness: { scope: :hierarchy_id } validates :user, presence: true validate :hierarchy_or_resource end |