Sha256: 4040cedc66b6377a3c1b426d2fa820c8d20328256b17cdb1fd56a821085a310b

Contents?: true

Size: 994 Bytes

Versions: 1

Compression:

Stored size: 994 Bytes

Contents

class UserRequestEmailConfirmationForm

  include Model::NonPersistent

  field :email, type: String

  validates_presence_of :email
  validates_format_of :email, with: /@/, message: :invalid_format

  # validates uniqueness of provider & uid (email) among all users
  validate do |record|
    user = User.where( 'emails.email' => record.email ).first
    unless user
      record.errors.add :email, :not_registered
      return
    end
    user_email = user.emails.where( email: record.email ).first
    unless user_email
      record.errors.add :email, :invalid
      return
    end
    if user_email.confirmed
      record.errors.add :email, :already_confirmed
    end
  end

  # Returns User object, corresponding to this email address
  #
  def user
    User.where( 'emails.email' => email ).first
  end

  # Returns UserEmail object, corresponding to this email address
  #
  def user_email
    user.emails.where( email: email ).first
  end


end # class UserRequestEmailConfirmationForm

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
aerogel-users-1.4.3 db/model/user_request_email_confirmation_form.rb