From 23288f62da73fb0e30d8e7ce306665e8fda1b932 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Wed, 29 Jan 2020 15:08:59 +0000 Subject: Add latest changes from gitlab-org/gitlab@master --- config/initializers/attr_encrypted_thread_safe.rb | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 config/initializers/attr_encrypted_thread_safe.rb (limited to 'config/initializers/attr_encrypted_thread_safe.rb') diff --git a/config/initializers/attr_encrypted_thread_safe.rb b/config/initializers/attr_encrypted_thread_safe.rb new file mode 100644 index 00000000000..be0bb56ffdc --- /dev/null +++ b/config/initializers/attr_encrypted_thread_safe.rb @@ -0,0 +1,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 -- cgit v1.2.3