Module: RoleModel::Implementation
- Included in:
- RoleModel
- Defined in:
- lib/role_model/implementation.rb
Instance Method Summary collapse
-
#has_all_roles?(*roles) ⇒ Boolean
(also: #is?, #has_roles?)
:call-seq: has_all_roles?(:role) has_all_roles?(‘role’) has_all_roles?(:role_1, …, :role_n) has_all_roles?(‘role_1’, …, ‘role_n’) has_all_roles?([:role_1, …, :role_n]) has_all_roles?([‘role_1’, …, ‘role_n’]).
-
#has_any_role?(*roles) ⇒ Boolean
(also: #is_any_of?, #has_role?)
:call-seq: has_any_role?(:role) has_any_role?(‘role’) has_any_role?(:role_1, …, :role_n) has_any_role?(‘role_1’, …, ‘role_n’) has_any_role?([:role_1, …, :role_n]) has_any_role?([‘role_1’, …, ‘role_n’]).
-
#has_only_roles?(*roles) ⇒ Boolean
(also: #is_exactly?)
:call-seq: has_only_roles?(:role) has_only_roles?(‘role’) has_only_roles?(:role_1, …, :role_n) has_only_roles?(‘role_1’, …, ‘role_n’) has_only_roles?([:role_1, …, :role_n]) has_only_roles?([‘role_1’, …, ‘role_n’]).
-
#role_symbols ⇒ Object
query assigned roles returning an Array for the declarative_authorization gem.
-
#roles ⇒ Object
query assigned roles.
-
#roles=(*roles) ⇒ Object
assign roles.
Instance Method Details
#has_all_roles?(*roles) ⇒ Boolean Also known as: is?, has_roles?
:call-seq:
has_all_roles?(:role)
has_all_roles?('role')
has_all_roles?(:role_1, ..., :role_n)
has_all_roles?('role_1', ..., 'role_n')
has_all_roles?([:role_1, ..., :role_n])
has_all_roles?(['role_1', ..., 'role_n'])
check if ALL of the given roles have been assigned this method is aliased as #is? and #has_roles?
30 31 32 |
# File 'lib/role_model/implementation.rb', line 30 def has_all_roles?(*roles) roles.flatten.map(&:to_sym).all? { |r| self.roles.include?(r) } end |
#has_any_role?(*roles) ⇒ Boolean Also known as: is_any_of?, has_role?
:call-seq:
has_any_role?(:role)
has_any_role?('role')
has_any_role?(:role_1, ..., :role_n)
has_any_role?('role_1', ..., 'role_n')
has_any_role?([:role_1, ..., :role_n])
has_any_role?(['role_1', ..., 'role_n'])
check if any (at least ONE) of the given roles have been assigned this method is aliased as #is_any_of? and #has_role?
46 47 48 |
# File 'lib/role_model/implementation.rb', line 46 def has_any_role?(*roles) roles.flatten.map(&:to_sym).any? { |r| self.roles.include?(r) } end |
#has_only_roles?(*roles) ⇒ Boolean Also known as: is_exactly?
:call-seq:
has_only_roles?(:role)
has_only_roles?('role')
has_only_roles?(:role_1, ..., :role_n)
has_only_roles?('role_1', ..., 'role_n')
has_only_roles?([:role_1, ..., :role_n])
has_only_roles?(['role_1', ..., 'role_n'])
check if ONLY of the given roles have been assigned this method is aliased as #is_exactly?
62 63 64 |
# File 'lib/role_model/implementation.rb', line 62 def has_only_roles?(*roles) self.send("#{self.class.roles_attribute_name}") == self.class.mask_for(*roles) end |
#role_symbols ⇒ Object
query assigned roles returning an Array for the declarative_authorization gem
16 17 18 |
# File 'lib/role_model/implementation.rb', line 16 def role_symbols roles.to_a end |
#roles ⇒ Object
query assigned roles
10 11 12 |
# File 'lib/role_model/implementation.rb', line 10 def roles Roles.new(self, self.class.valid_roles.reject { |r| ((self.send(self.class.roles_attribute_name) || 0) & 2**self.class.valid_roles.index(r)).zero? }) end |
#roles=(*roles) ⇒ Object
assign roles
5 6 7 |
# File 'lib/role_model/implementation.rb', line 5 def roles=(*roles) self.send("#{self.class.roles_attribute_name}=", self.class.mask_for(*roles)) end |