Module: MongoidAbility::Subject::ClassMethods
- Defined in:
- lib/mongoid_ability/subject.rb
Overview
Instance Method Summary collapse
- #accessible_by(ability, action = :read, options = {}) ⇒ Object
- #ancestors_with_default_locks ⇒ Object
- #default_lock(lock_cls, action, outcome, attrs = {}) ⇒ Object
- #default_locks ⇒ Object
- #default_locks=(locks) ⇒ Object
- #self_and_ancestors_with_default_locks ⇒ Object
Instance Method Details
#accessible_by(ability, action = :read, options = {}) ⇒ Object
39 40 41 |
# File 'lib/mongoid_ability/subject.rb', line 39 def accessible_by ability, action=:read, ={} AccessibleQueryBuilder.call(self, ability, action, ) end |
#ancestors_with_default_locks ⇒ Object
35 36 37 |
# File 'lib/mongoid_ability/subject.rb', line 35 def ancestors_with_default_locks self_and_ancestors_with_default_locks - [self] end |
#default_lock(lock_cls, action, outcome, attrs = {}) ⇒ Object
21 22 23 24 25 26 27 28 29 |
# File 'lib/mongoid_ability/subject.rb', line 21 def default_lock lock_cls, action, outcome, attrs={} lock = lock_cls.new( { subject_type: self.to_s, action: action, outcome: outcome }.merge(attrs)) if existing_lock = default_locks.detect{ |l| l.action.to_s == lock.action.to_s } default_locks.delete(existing_lock) end default_locks.push lock end |
#default_locks ⇒ Object
13 14 15 |
# File 'lib/mongoid_ability/subject.rb', line 13 def default_locks @default_locks ||= [] end |
#default_locks=(locks) ⇒ Object
17 18 19 |
# File 'lib/mongoid_ability/subject.rb', line 17 def default_locks= locks @default_locks = locks end |
#self_and_ancestors_with_default_locks ⇒ Object
31 32 33 |
# File 'lib/mongoid_ability/subject.rb', line 31 def self_and_ancestors_with_default_locks ancestors.select { |a| a.is_a?(Class) && a.respond_to?(:default_locks) } end |