Module: DataMapper::RolesMask::ClassMethods
- Defined in:
- lib/roles_for_dm/strategies/roles_mask.rb
Instance Attribute Summary collapse
-
#available_roles ⇒ Object
Returns the value of attribute available_roles.
Instance Method Summary collapse
Instance Attribute Details
#available_roles ⇒ Object
Returns the value of attribute available_roles.
23 24 25 |
# File 'lib/roles_for_dm/strategies/roles_mask.rb', line 23 def available_roles @available_roles end |
Instance Method Details
#calc_index(r) ⇒ Object
41 42 43 |
# File 'lib/roles_for_dm/strategies/roles_mask.rb', line 41 def calc_index(r) 2**available_roles.index(r) end |
#in_role(role) ⇒ Object
25 26 27 28 29 30 |
# File 'lib/roles_for_dm/strategies/roles_mask.rb', line 25 def in_role(role) mask = calc_index(role.to_s) all.select do |user| (user.roles_mask & mask) > 0 end end |
#in_roles(*roles) ⇒ Object
32 33 34 35 36 37 38 39 |
# File 'lib/roles_for_dm/strategies/roles_mask.rb', line 32 def in_roles(*roles) all.select do |user| roles.flatten.any? do |role| mask = calc_index(role.to_s) (user.roles_mask & mask) > 0 end end end |