Browse Source

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
tags/4.2.0
Go MAEDA 3 years ago
parent
commit
d0c56c0f6a
2 changed files with 11 additions and 2 deletions
  1. 2
    2
      lib/redmine/ciphering.rb
  2. 9
    0
      test/unit/lib/redmine/ciphering_test.rb

+ 2
- 2
lib/redmine/ciphering.rb View File

@@ -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

+ 9
- 0
test/unit/lib/redmine/ciphering_test.rb View File

@@ -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

Loading…
Cancel
Save