module ErpTechSvcs::Extensions::ActiveRecord::ProtectedByCapabilities::InstanceMethods
Public Instance Methods
add_capability(capability_type_iid)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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()
click to toggle source
convenience method to access class method
# 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)
click to toggle source
# 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?()
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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()
click to toggle source
# 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)
click to toggle source
# 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
Private Instance Methods
convert_capability_type(type)
click to toggle source
# File lib/erp_tech_svcs/extensions/active_record/protected_with_capabilities.rb, line 226 def convert_capability_type(type) self.class.convert_capability_type(type) end