Sha256: a1faad807b55052011289167401a3f8dfe0721fb314799210237d84d7f4fdcc0

Contents?: true

Size: 679 Bytes

Versions: 62

Compression:

Stored size: 679 Bytes

Contents

module Workarea
  class User
    class RecentPassword
      include ApplicationDocument
      include ActiveModel::SecurePassword

      field :password_digest, type: String
      belongs_to :user, class_name: 'Workarea::User', index: true
      has_secure_password validations: false

      scope :by_newest, -> { desc(:created_at) }

      def self.clean(user)
        limit = Workarea.config.password_history_length

        if user.recent_passwords.length > limit
          user
            .recent_passwords
            .by_newest
            .to_a
            .first(user.recent_passwords.length - limit)
            .each(&:delete)
        end
      end
    end
  end
end

Version data entries

62 entries across 62 versions & 1 rubygems

Version Path
workarea-core-3.4.13 app/models/workarea/user/recent_password.rb
workarea-core-3.4.12 app/models/workarea/user/recent_password.rb