Sha256: c706219c932b420cce7af967f5762bcaef28601ef48cae810f841ed27f8c2a59

Contents?: true

Size: 1.65 KB

Versions: 10

Compression:

Stored size: 1.65 KB

Contents

class User < ActiveRecord::Base
  belongs_to :role
  has_many :blogs, :dependent => :destroy
  has_one :profile, :dependent => :destroy
  has_many :galleries, :dependent => :destroy
  has_many :access_control_entries, :dependent=>:destroy
  before_create :create_profile

  accepts_nested_attributes_for :profile

  def initialize(*args)
    super(*args)
  end

  def self.nobody
    User.new(:role=>Role.nobody)
  end

  def self.root
    User.where(:role_id=>Role.root.id)[0]
  end

  def create_profile
    unless self.profile
      build_profile(:alias=>email)
      profile.save
    end
  end

  def role?(role)
    if role.kind_of?(Role)
      return role==self.role
    elsif role.is_numeric?
      return self.role_id==role
    else
      return self.role.name.underscore==role.underscore
    end
  end

  def role=(role)
    if role.kind_of? Role
      self.role_id = role.id
    else
      role = role.to_s.camelize
      if role.is_numeric?
        self.role_id= role
      else
        self.role_id= Role.find_by_name(role).id
      end
    end
  end

  def confirm!
    self.confirmed_at = DateTime::now
    save
  end
  devise :database_authenticatable, :recoverable, :rememberable, :trackable, :validatable, :token_authenticatable, :lockable, :timeoutable
end

class FullyValidatedUser < User
  def class
    User
  end
  _validators[:password].delete_if{|t| t.is_a? ActiveModel::Validations::PresenceValidator}
  attr_accessor :old_password
  validates :email, :presence => true, :email => true
  validates :old_password, :presence=>true, :password=>true
  validates :password, :length=>{:minimum=>6}
  validates :password_confirmation, :equal_to=>{:other=>:password}
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
wheels-0.1.25 app/models/user.rb
wheels-0.1.24 app/models/user.rb
wheels-0.1.23 app/models/user.rb
wheels-0.1.22 app/models/user.rb
wheels-0.1.21 app/models/user.rb
wheels-0.1.20 app/models/user.rb
wheels-0.1.19 app/models/user.rb
wheels-0.1.18 app/models/user.rb
wheels-0.1.17 app/models/user.rb
wheels-0.1.16 app/models/user.rb