Welcome to mirror list, hosted at ThFree Co, Russian Federation.

attr_encrypted_thread_safe.rb « initializers « config - gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: be0bb56ffdc09e97ee3691dacce94adec94e23b0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# frozen_string_literal: true

# As of v3.1.0, attr_encrypted is not thread-safe because all instances share the same `encrypted_attributes`
# This was fixed in https://github.com/attr-encrypted/attr_encrypted/commit/d4ca0e2073ca6ba5035997ce25f7fc0b4bfbe39e
# but no release was made after that so we have to patch it ourselves here

module AttrEncrypted
  module InstanceMethods
    def encrypted_attributes
      @encrypted_attributes ||= begin
        duplicated = {}
        self.class.encrypted_attributes.map { |key, value| duplicated[key] = value.dup }
        duplicated
      end
    end
  end
end