module RoleModel::Implementation

Public Instance Methods

has_all_roles?(:role) click to toggle source
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?

# 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
Also aliased as: is?, has_roles?
has_any_role?(:role) click to toggle source
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?

# 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
Also aliased as: is_any_of?, has_role?
has_only_roles?(:role) click to toggle source
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?

# 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
Also aliased as: is_exactly?
has_role?(*roles)
Alias for: has_any_role?
has_roles?(*roles)
Alias for: has_all_roles?
is?(*roles)
Alias for: has_all_roles?
is_any_of?(*roles)
Alias for: has_any_role?
is_exactly?(*roles)
Alias for: has_only_roles?
role_symbols() click to toggle source

query assigned roles returning an Array for the declarative_authorization gem

# File lib/role_model/implementation.rb, line 16
def role_symbols
  roles.to_a
end
roles() click to toggle source

query assigned roles

# 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) click to toggle source

assign roles

# File lib/role_model/implementation.rb, line 5
def roles=(*roles)
  self.send("#{self.class.roles_attribute_name}=", self.class.mask_for(*roles))
end