diff options
author | Go MAEDA <maeda@farend.jp> | 2020-09-01 14:19:10 +0000 |
---|---|---|
committer | Go MAEDA <maeda@farend.jp> | 2020-09-01 14:19:10 +0000 |
commit | d0c56c0f6afc5eb5fd20ee1e902acc31a33fbac9 (patch) | |
tree | cafc227db4ce2853ae092162db65cd3d1a3e2bc1 | |
parent | b0739821e81f439d6bc65b15245da68b9545192d (diff) | |
download | redmine-d0c56c0f6afc5eb5fd20ee1e902acc31a33fbac9.tar.gz redmine-d0c56c0f6afc5eb5fd20ee1e902acc31a33fbac9.zip |
Rake tasks "db:encrypt" and "db:decrypt" may fail due to validation error (#33926).
Patch by Go MAEDA.
git-svn-id: http://svn.redmine.org/redmine/trunk@19999 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r-- | lib/redmine/ciphering.rb | 4 | ||||
-rw-r--r-- | test/unit/lib/redmine/ciphering_test.rb | 9 |
2 files changed, 11 insertions, 2 deletions
diff --git a/lib/redmine/ciphering.rb b/lib/redmine/ciphering.rb index d5ceb0c6c..469d3b9e6 100644 --- a/lib/redmine/ciphering.rb +++ b/lib/redmine/ciphering.rb @@ -74,7 +74,7 @@ module Redmine all.each do |object| clear = object.send(attribute) object.send "#{attribute}=", clear - raise(ActiveRecord::Rollback) unless object.save(:validation => false) + raise(ActiveRecord::Rollback) unless object.save(validate: false) end end ? true : false end @@ -84,7 +84,7 @@ module Redmine all.each do |object| clear = object.send(attribute) object.send :write_attribute, attribute, clear - raise(ActiveRecord::Rollback) unless object.save(:validation => false) + raise(ActiveRecord::Rollback) unless object.save(validate: false) end end ? true : false end diff --git a/test/unit/lib/redmine/ciphering_test.rb b/test/unit/lib/redmine/ciphering_test.rb index d28a5d49d..3a87d5b67 100644 --- a/test/unit/lib/redmine/ciphering_test.rb +++ b/test/unit/lib/redmine/ciphering_test.rb @@ -20,6 +20,7 @@ require File.expand_path('../../../../test_helper', __FILE__) class Redmine::CipheringTest < ActiveSupport::TestCase + fixtures :auth_sources def test_password_should_be_encrypted Redmine::Configuration.with 'database_cipher_key' => 'secret' do @@ -106,4 +107,12 @@ class Redmine::CipheringTest < ActiveSupport::TestCase assert_equal 'bar', r.read_attribute(:password) end end + + def test_encrypt_all_and_decrypt_all_should_skip_validation + auth_source = auth_sources(:auth_sources_001) + # validator checks if AuthSource#host is present + auth_source.update_column(:host, nil) + assert AuthSource.encrypt_all(:account_password) + assert AuthSource.decrypt_all(:account_password) + end end |