Module: Protector::Adapters::ActiveRecord::Base
- Extended by:
- ActiveSupport::Concern
- Defined in:
- lib/protector/adapters/active_record/base.rb
Overview
Patches ActiveRecord::Base
Defined Under Namespace
Modules: ClassMethods
Instance Method Summary collapse
- #can?(action, field = false) ⇒ Boolean
-
#creatable? ⇒ Boolean
Checks if current model can be created in the context of current subject.
-
#destroyable? ⇒ Boolean
Checks if current model can be destroyed in the context of current subject.
-
#protector_changed ⇒ Object
Gathers real changed values bypassing restrictions.
-
#protector_meta(subject = protector_subject) ⇒ Object
Storage for DSL::Meta::Box.
-
#updatable? ⇒ Boolean
Checks if current model can be updated in the context of current subject.
-
#visible? ⇒ Boolean
Checks if current model can be selected in the context of current subject.
Instance Method Details
#can?(action, field = false) ⇒ Boolean
121 122 123 |
# File 'lib/protector/adapters/active_record/base.rb', line 121 def can?(action, field=false) .can?(action, field) end |
#creatable? ⇒ Boolean
Checks if current model can be created in the context of current subject
107 108 109 |
# File 'lib/protector/adapters/active_record/base.rb', line 107 def creatable? .creatable? protector_changed end |
#destroyable? ⇒ Boolean
Checks if current model can be destroyed in the context of current subject
117 118 119 |
# File 'lib/protector/adapters/active_record/base.rb', line 117 def destroyable? .destroyable? end |
#protector_changed ⇒ Object
Gathers real changed values bypassing restrictions
88 89 90 |
# File 'lib/protector/adapters/active_record/base.rb', line 88 def protector_changed HashWithIndifferentAccess[changed.map { |field| [field, read_attribute(field)] }] end |
#protector_meta(subject = protector_subject) ⇒ Object
Storage for DSL::Meta::Box
93 94 95 |
# File 'lib/protector/adapters/active_record/base.rb', line 93 def (subject=protector_subject) @protector_meta ||= self.class..evaluate(subject, self) end |
#updatable? ⇒ Boolean
Checks if current model can be updated in the context of current subject
112 113 114 |
# File 'lib/protector/adapters/active_record/base.rb', line 112 def updatable? .updatable? protector_changed end |
#visible? ⇒ Boolean
Checks if current model can be selected in the context of current subject
98 99 100 101 102 103 104 |
# File 'lib/protector/adapters/active_record/base.rb', line 98 def visible? return true unless .scoped? .relation.where( self.class.primary_key => id ).any? end |