Module: Lobby::AuthUser

Defined in:
lib/lobby/auth_user.rb

Defined Under Namespace

Modules: ClassMethods

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
# File 'lib/lobby/auth_user.rb', line 4

def self.included(base)
  base.has_secure_password(validations: :validate_password?)

  base.validates :email, presence: true, if: :email_required?
  base.validates :email, format: {with: EMAIL_REGEX, multiline: true}, if: Proc.new { |u| u.email.present? }
  base.validates :email, uniqueness: true, :unless => :confirmed_duplicate_email, :on => :create, if: Proc.new { |u| u.email.present? }
  base.validates :password, length: { minimum: 5 }, :on => :create, if: Proc.new { |u| u.password.present? }

  base.validates :username, presence: true, if: :username_required?
  base.validates :username, uniqueness: true, :unless => :confirmed_duplicate_username, :on => :create

  base.extend ClassMethods
end

Instance Method Details

#active?Boolean

Returns:

  • (Boolean)


54
55
56
# File 'lib/lobby/auth_user.rb', line 54

def active?
  self.active == true
end

#confirm_signup!Object



44
45
46
47
48
# File 'lib/lobby/auth_user.rb', line 44

def confirm_signup!
  update_attribute(:confirmed, Time.now)
  update_attribute(:signup_token, nil)
  update_attribute(:active, true)
end

#confirmed?Boolean

Returns:

  • (Boolean)


50
51
52
# File 'lib/lobby/auth_user.rb', line 50

def confirmed?
  !self.confirmed.nil?
end

#confirmed_duplicate_email(test_mail = self.email) ⇒ Object



35
36
37
38
39
40
41
42
# File 'lib/lobby/auth_user.rb', line 35

def confirmed_duplicate_email(test_mail = self.email)
  if ((self.class.name.constantize.confirmed.with_email(test_mail).count == 0) ||
      (self.class.name.constantize.with_email(test_mail).count == 0))
    true
  else
    false
  end
end

#confirmed_duplicate_username(test_username = self.username) ⇒ Object

attr_accessible :username



60
61
62
63
64
65
66
67
# File 'lib/lobby/auth_user.rb', line 60

def confirmed_duplicate_username(test_username = self.username)
  if ((User.confirmed.with_username(test_username).count == 0) ||
      (User.with_username(test_username).count == 0))
    true
  else
    false
  end
end

#resend_signup_tokenObject



95
96
97
98
# File 'lib/lobby/auth_user.rb', line 95

def 
  return unless (!confirmed? && generate_token(:signup_token))
  tokenmail(:resend_signup_token)
end

#send_password_reset(with_mail = true) ⇒ Object



83
84
85
86
87
88
# File 'lib/lobby/auth_user.rb', line 83

def send_password_reset(with_mail = true)
  return unless generate_token(:password_token)
  if with_mail
    tokenmail(:send_password_reset)
  end
end

#send_registrationObject



90
91
92
93
# File 'lib/lobby/auth_user.rb', line 90

def send_registration
  return unless generate_token(:signup_token)
  tokenmail(:registration)
end

#tokenmail(request) ⇒ Object

Nach erfolgreicher Verifizierung der Email-Adresse) wird das Feld confirmed mit einem Datum gefüllt. Ab diesem Zeitpunkt kann keine neuer Confirmation-Token generiert und verschickt werden.



79
80
81
# File 'lib/lobby/auth_user.rb', line 79

def tokenmail(request)
  ConfirmationMailer.send(request, self).deliver
end