Module: ErpTechSvcs::Extensions::ActiveRecord::ProtectedByCapabilities::InstanceMethods
- Defined in:
- lib/erp_tech_svcs/extensions/active_record/protected_with_capabilities.rb
Instance Method Summary collapse
- #add_capability(capability_type_iid) ⇒ Object
- #allow_access?(user, capability_type_iid) ⇒ Boolean
- #get_capability(capability_type_iid) ⇒ Object
-
#protect_all_instances ⇒ Object
convenience method to access class method.
- #protect_with_capability(capability_type_iid) ⇒ Object
- #protected_with_capabilities? ⇒ Boolean
- #protected_with_capability?(capability_type_iid) ⇒ Boolean
- #remove_capability(capability_type_iid) ⇒ Object
- #roles ⇒ Object
- #unprotect_with_capability(capability_type_iid) ⇒ Object
Instance Method Details
#add_capability(capability_type_iid) ⇒ Object
175 176 177 178 179 180 181 |
# File 'lib/erp_tech_svcs/extensions/active_record/protected_with_capabilities.rb', line 175 def add_capability(capability_type_iid) capability_type = convert_capability_type(capability_type_iid) scope_type = ScopeType.find_by_internal_identifier('instance') capability = Capability.find_or_create_by_capability_resource_type_and_capability_resource_id_and_capability_type_id_and_scope_type_id(get_superclass, self.id, capability_type.id, scope_type.id) self.reload capability end |
#allow_access?(user, capability_type_iid) ⇒ Boolean
202 203 204 205 206 207 208 |
# File 'lib/erp_tech_svcs/extensions/active_record/protected_with_capabilities.rb', line 202 def allow_access?(user, capability_type_iid) if (!self.protect_all_instances and !self.protected_with_capability?(capability_type_iid.to_s)) or (user and user.has_capability?(capability_type_iid.to_s, self)) return true else return false end end |
#get_capability(capability_type_iid) ⇒ Object
193 194 195 196 |
# File 'lib/erp_tech_svcs/extensions/active_record/protected_with_capabilities.rb', line 193 def get_capability(capability_type_iid) capability_type = convert_capability_type(capability_type_iid) capabilities.where(:capability_type_id => capability_type.id).first end |
#protect_all_instances ⇒ Object
convenience method to access class method
171 172 173 |
# File 'lib/erp_tech_svcs/extensions/active_record/protected_with_capabilities.rb', line 171 def protect_all_instances self.class.protect_all_instances end |
#protect_with_capability(capability_type_iid) ⇒ Object
189 190 191 |
# File 'lib/erp_tech_svcs/extensions/active_record/protected_with_capabilities.rb', line 189 def protect_with_capability(capability_type_iid) add_capability(capability_type_iid) end |
#protected_with_capabilities? ⇒ Boolean
221 222 223 |
# File 'lib/erp_tech_svcs/extensions/active_record/protected_with_capabilities.rb', line 221 def protected_with_capabilities? !capabilities.empty? end |
#protected_with_capability?(capability_type_iid) ⇒ Boolean
198 199 200 |
# File 'lib/erp_tech_svcs/extensions/active_record/protected_with_capabilities.rb', line 198 def protected_with_capability?(capability_type_iid) !get_capability(capability_type_iid).nil? or protect_all_instances end |
#remove_capability(capability_type_iid) ⇒ Object
210 211 212 213 214 215 |
# File 'lib/erp_tech_svcs/extensions/active_record/protected_with_capabilities.rb', line 210 def remove_capability(capability_type_iid) capability = get_capability(capability_type_iid) capability.destroy unless capability.nil? self.reload capability end |
#roles ⇒ Object
183 184 185 186 187 |
# File 'lib/erp_tech_svcs/extensions/active_record/protected_with_capabilities.rb', line 183 def roles SecurityRole.joins(:capability_accessors => :capability). where(:capabilities => {:capability_resource_type => get_superclass}). where(:capabilities => {:capability_resource_id => self.id}) end |
#unprotect_with_capability(capability_type_iid) ⇒ Object
217 218 219 |
# File 'lib/erp_tech_svcs/extensions/active_record/protected_with_capabilities.rb', line 217 def unprotect_with_capability(capability_type_iid) remove_capability(capability_type_iid) end |