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