Sha256: 7033436340cb55dd6d2755982e4f29652a31a9e7b89293ca626df621acdfc60b

Contents?: true

Size: 1.04 KB

Versions: 3

Compression:

Stored size: 1.04 KB

Contents

class VirtualUser < ActiveRecord::Base

  devise :database_authenticatable, :encryptable,
         :recoverable, :rememberable, :validatable,
         :encryptor => :dovecot_ssha512, :stretches => 1

  belongs_to :virtual_domain

  attr_accessible :name, :email, :password, :quota_kb, :quota_messages

  before_validation :repair_email_format

  validates :email,
    :presence   => true,
    :uniqueness => true,
    :format     => { :with => /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/i }

  validates :quota_kb,
    :numericality => true
  validates :quota_messages,
    :numericality => true


  def change_data(params)
    attrs = params.symbolize_keys
    if attrs[:password].blank?
      attrs.delete(:password)
      update_without_password(attrs)
    else
      update_attributes(attrs)
    end
  end

  def self.drop_domain_from_email_each(users)
    users.each do |user|
      user.email.sub!(/@.*/, '')
    end
  end

  def repair_email_format
    if self.email !~ /@.*$/
      self.email += "@#{self.virtual_domain.name}"
    end
    true
  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
rmails-0.2.5 app/models/virtual_user.rb
rmails-0.2.4 app/models/virtual_user.rb
rmails-0.2.3 app/models/virtual_user.rb