Module: ErpTechSvcs::Extensions::ActiveRecord::HasSecurityRoles::InstanceMethods
- Defined in:
- lib/erp_tech_svcs/extensions/active_record/has_security_roles.rb
Instance Method Summary collapse
- #add_role(role) ⇒ Object (also: #add_security_role)
- #add_roles(*passed_roles) ⇒ Object (also: #add_security_roles)
- #has_role?(*passed_roles) ⇒ Boolean (also: #has_security_role?)
- #remove_all_roles ⇒ Object (also: #remove_all_security_roles)
- #remove_role(role) ⇒ Object (also: #remove_security_role)
- #remove_roles(*passed_roles) ⇒ Object (also: #remove_security_roles)
- #roles ⇒ Object
- #roles_not ⇒ Object
Instance Method Details
#add_role(role) ⇒ Object Also known as: add_security_role
37 38 39 40 41 42 43 |
# 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 |
#add_roles(*passed_roles) ⇒ Object Also known as: add_security_roles
46 47 48 49 50 51 52 |
# 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 |
#has_role?(*passed_roles) ⇒ Boolean Also known as: has_security_role?
76 77 78 79 80 81 82 83 84 85 86 87 88 |
# 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 |
#remove_all_roles ⇒ Object Also known as: remove_all_security_roles
70 71 72 73 |
# File 'lib/erp_tech_svcs/extensions/active_record/has_security_roles.rb', line 70 def remove_all_roles self.security_roles = [] self.save end |
#remove_role(role) ⇒ Object Also known as: remove_security_role
55 56 57 58 |
# 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 |
#remove_roles(*passed_roles) ⇒ Object Also known as: remove_security_roles
62 63 64 65 66 67 |
# 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 |
#roles ⇒ Object
33 34 35 |
# File 'lib/erp_tech_svcs/extensions/active_record/has_security_roles.rb', line 33 def roles self.security_roles end |
#roles_not ⇒ Object
29 30 31 |
# 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 |