Sha256: f8b5cf1e88475127d32277931751fbbd66cf103fb23953cf04675b9d6c2b9723

Contents?: true

Size: 717 Bytes

Versions: 5

Compression:

Stored size: 717 Bytes

Contents

class <%= user_class_name %> < ActiveRecord::Base
  acts_as_authentic

  attr_accessible :first_name, :last_name, :full_name, :email, :password, :password_confirmation, :language, :roles

  named_scope :with_role, lambda { |role| {:conditions => "roles_mask & #{2**ROLES.index(role.to_s)} > 0"} }

  ROLES = %w[<%= user_singular_name %> admin]

  def roles=(roles)
    self.roles_mask = (roles & ROLES).map { |r| 2**ROLES.index(r) }.sum
  end

  def roles
    ROLES.reject { |r| ((roles_mask || 0) & 2**ROLES.index(r)).zero? }
  end

  def role_symbols
    roles.map(&:to_sym)
  end

  def has_role?(role)
    roles.include?(role) ? true : false
  end

  def full_name
    "#{first_name} #{last_name}".strip
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
mondo-generators-0.6.2 rails_generators/mondo_authentication/templates/user.rb
mondo-generators-0.6.1 rails_generators/mondo_authentication/templates/user.rb
mondo-generators-0.6.0 rails_generators/mondo_authentication/templates/user.rb
mondo-generators-0.5.0 rails_generators/mondo_authentication/templates/user.rb
mondo-generators-0.2.0 rails_generators/mondo_authentication/templates/user.rb