module ErpTechSvcs::Extensions::ActiveRecord::HasSecurityRoles::InstanceMethods

Public Instance Methods

add_role(role) click to toggle source
# File lib/erp_tech_svcs/extensions/active_record/has_security_roles.rb, line 37
                        def add_role(role)
                                role = role.is_a?(SecurityRole) ? role : SecurityRole.find_by_internal_identifier(role.to_s)
  unless self.has_role?(role)
                                self.security_roles << role
                                self.save
                              end
end
Also aliased as: add_security_role
add_roles(*passed_roles) click to toggle source
# File lib/erp_tech_svcs/extensions/active_record/has_security_roles.rb, line 46
def add_roles(*passed_roles)
  passed_roles.flatten!
  passed_roles = passed_roles.first if passed_roles.first.is_a? Array
  passed_roles.each do |role|
    self.add_role(role)
  end
end
Also aliased as: add_security_roles
add_security_role(role)
Alias for: add_role
add_security_roles(*passed_roles)
Alias for: add_roles
has_role?(*passed_roles) click to toggle source
# File lib/erp_tech_svcs/extensions/active_record/has_security_roles.rb, line 76
def has_role?(*passed_roles)
  result = false
  passed_roles.flatten!
  passed_roles.each do |role|
    role_iid = role.is_a?(SecurityRole) ?  role.internal_identifier : role.to_s
    self.security_roles.each do |this_role|
      result = true if (this_role.internal_identifier == role_iid)
      break if result
    end
    break if result
  end
  result
end
Also aliased as: has_security_role?
has_security_role?(*passed_roles)
Alias for: has_role?
remove_all_roles() click to toggle source
# File lib/erp_tech_svcs/extensions/active_record/has_security_roles.rb, line 70
def remove_all_roles
  self.security_roles = []
  self.save
end
Also aliased as: remove_all_security_roles
remove_all_security_roles()
Alias for: remove_all_roles
remove_role(role) click to toggle source
# File lib/erp_tech_svcs/extensions/active_record/has_security_roles.rb, line 55
def remove_role(role)
  role = role.is_a?(SecurityRole) ? role : SecurityRole.find_by_internal_identifier(role.to_s)
  self.security_roles.delete(role) if has_role?(role)
end
Also aliased as: remove_security_role
remove_roles(*passed_roles) click to toggle source
# File lib/erp_tech_svcs/extensions/active_record/has_security_roles.rb, line 62
def remove_roles(*passed_roles)
  passed_roles.flatten!
  passed_roles.each do |role|
    self.remove_role(role)
  end
end
Also aliased as: remove_security_roles
remove_security_role(role)
Alias for: remove_role
remove_security_roles(*passed_roles)
Alias for: remove_roles
roles() click to toggle source
# File lib/erp_tech_svcs/extensions/active_record/has_security_roles.rb, line 33
                        def roles
                                self.security_roles
end
roles_not() click to toggle source
# File lib/erp_tech_svcs/extensions/active_record/has_security_roles.rb, line 29
def roles_not
  SecurityRole.where("id NOT IN (#{self.security_roles.select(:id).to_sql})")
end