Sha256: 6a10d0b3dfcaebb7b6791580d30cb5b523a7f7ebb11575d59a10327b3388ecd3

Contents?: true

Size: 1.04 KB

Versions: 26

Compression:

Stored size: 1.04 KB

Contents

module Challah
  class PasswordProvider
    def self.save(user)
      set(uid: user.username, token: user.password, user_id: user.id, authorization: user.class.authorization_model)
    end

    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

    def self.valid?(record)
      password_validator = Challah.options[:password_validator]
      password_validator.new(force: true).validate(record)
      record.errors[:password].size.zero?
    end
  end
end

Version data entries

26 entries across 26 versions & 1 rubygems

Version Path
challah-1.6.1 lib/challah/providers/password_provider.rb
challah-1.6.0 lib/challah/providers/password_provider.rb
challah-1.5.0 lib/challah/providers/password_provider.rb
challah-1.4.2 lib/challah/providers/password_provider.rb
challah-1.4.1 lib/challah/providers/password_provider.rb
challah-1.4.0 lib/challah/providers/password_provider.rb
challah-1.3.3 lib/challah/providers/password_provider.rb
challah-1.3.2 lib/challah/providers/password_provider.rb
challah-1.3.1 lib/challah/providers/password_provider.rb
challah-1.3.0 lib/challah/providers/password_provider.rb
challah-1.2.11 lib/challah/providers/password_provider.rb
challah-1.2.10 lib/challah/providers/password_provider.rb
challah-1.2.9 lib/challah/providers/password_provider.rb
challah-1.2.8 lib/challah/providers/password_provider.rb
challah-1.2.7 lib/challah/providers/password_provider.rb
challah-1.2.6 lib/challah/providers/password_provider.rb
challah-1.2.5 lib/challah/providers/password_provider.rb
challah-1.2.5.pre lib/challah/providers/password_provider.rb
challah-1.2.4 lib/challah/providers/password_provider.rb
challah-1.2.3 lib/challah/providers/password_provider.rb