class Challah::PasswordProvider

Public Class Methods

save(user) click to toggle source
# File lib/challah/providers/password_provider.rb, line 3
def self.save(user)
  set(uid: user.username, token: user.password, user_id: user.id, authorization: user.class.authorization_model)
end
set(options = {}) click to toggle source
# File lib/challah/providers/password_provider.rb, line 7
def self.set(options = {})
  user_id     = options.fetch(:user_id)
  uid         = options.fetch(:uid, '')
  token       = options.fetch(:token, '')
  auth_model  = options.fetch(:authorization, ::Authorization)

  if token.to_s.blank?
    authorization = auth_model.get({
      user_id:  user_id,
      provider: :password
    })

    if authorization
      token = authorization.token
    end
  else
    token = Challah::Encrypter.encrypt(token)
  end

  auth_model.set({
    provider: :password,
    user_id:  user_id,
    uid:      uid,
    token:    token
  })
end
valid?(record) click to toggle source
# File lib/challah/providers/password_provider.rb, line 34
def self.valid?(record)
  password_validator = Challah.options[:password_validator]
  password_validator.new(force: true).validate(record)
  record.errors[:password].size.zero?
end