Module: Challah::UserPasswordable

Included in:
Userable
Defined in:
lib/challah/concerns/user/passwordable.rb

Instance Method Summary collapse

Instance Method Details

#password!(new_password) ⇒ Object

Set the password and password_confirmation in one shortcut method.



4
5
6
7
# File 'lib/challah/concerns/user/passwordable.rb', line 4

def password!(new_password)
  self.password = new_password
  self.password_confirmation = new_password
end

#password=(value) ⇒ Object

Set a password for this user



19
20
21
22
23
24
25
26
27
# File 'lib/challah/concerns/user/passwordable.rb', line 19

def password=(value)
  if value.to_s.blank?
    @password = nil
    @password_updated = false
  else
    @password = value
    @password_updated = true
  end
end

#password_changed?Boolean

Was the password updated

Returns:

  • (Boolean)


35
36
37
# File 'lib/challah/concerns/user/passwordable.rb', line 35

def password_changed?
  !!@password
end

#password_confirmation=(value) ⇒ Object

Set the confirmation when changing a password



30
31
32
# File 'lib/challah/concerns/user/passwordable.rb', line 30

def password_confirmation=(value)
  @password_confirmation = value
end

#password_providerObject



14
15
16
# File 'lib/challah/concerns/user/passwordable.rb', line 14

def password_provider
  providers[:password] || Hash.new
end

#password_provider?Boolean

Returns:

  • (Boolean)


9
10
11
12
# File 'lib/challah/concerns/user/passwordable.rb', line 9

def password_provider?
  return true if @password_updated or @username_updated
  !!providers[:password]
end

#usernameObject



39
40
41
# File 'lib/challah/concerns/user/passwordable.rb', line 39

def username
  @username ||= password_provider? ? password_provider.fetch(:uid, '') : ''
end

#username=(value) ⇒ Object



43
44
45
46
# File 'lib/challah/concerns/user/passwordable.rb', line 43

def username=(value)
  @username_updated = true
  @username = value.to_s.strip.downcase
end