Module: RoleMaking::Role
- Defined in:
- lib/role_making/role.rb
Instance Method Summary collapse
- #add_role(role_name) ⇒ Object (also: #grant)
- #has_all_roles?(*args) ⇒ Boolean
- #has_any_role?(*args) ⇒ Boolean
- #has_role?(role_name) ⇒ Boolean
- #remove_role(roles_name) ⇒ Object (also: #revoke)
- #roles_name ⇒ Object
Instance Method Details
#add_role(role_name) ⇒ Object Also known as: grant
5 6 7 8 9 10 11 12 |
# File 'lib/role_making/role.rb', line 5 def add_role(role_name) role = self.roles.where(name: role_name).first unless role role = self.class.role_cname.constantize.where(name: role_name.to_s).first_or_initialize self.roles << role end role end |
#has_all_roles?(*args) ⇒ Boolean
24 25 26 27 28 |
# File 'lib/role_making/role.rb', line 24 def has_all_roles?(*args) args.all? do |item| self.has_role?(item) end end |
#has_any_role?(*args) ⇒ Boolean
30 31 32 |
# File 'lib/role_making/role.rb', line 30 def has_any_role?(*args) args.any? { |r| self.has_role?(r) } end |
#has_role?(role_name) ⇒ Boolean
15 16 17 18 19 20 21 22 |
# File 'lib/role_making/role.rb', line 15 def has_role?(role_name) role_array = if new_record? self.roles.detect { |r| r.name.to_s == role_name.to_s } else self.roles.exists?( name: role_name) end !!role_array end |
#remove_role(roles_name) ⇒ Object Also known as: revoke
35 36 37 |
# File 'lib/role_making/role.rb', line 35 def remove_role(roles_name) self.roles.delete(self.class.role_cname.constantize.where(name: roles_name)) end |
#roles_name ⇒ Object
41 42 43 |
# File 'lib/role_making/role.rb', line 41 def roles_name self.roles.select(:name).map { |r| r.name } end |