Checksum is always the same via WebDAV #1384
This commit is contained in:
parent
a5d793b50f
commit
2c4f451de7
@ -603,16 +603,6 @@ module RedmineDmsf
|
|||||||
|
|
||||||
if new_revision.save
|
if new_revision.save
|
||||||
new_revision.copy_file_content request.body
|
new_revision.copy_file_content request.body
|
||||||
# Digest
|
|
||||||
sha = Digest::SHA256.new
|
|
||||||
if request.body.respond_to?(:read)
|
|
||||||
while (buffer = request.body.read(8192))
|
|
||||||
sha.update buffer
|
|
||||||
end
|
|
||||||
else
|
|
||||||
sha.update request.body
|
|
||||||
end
|
|
||||||
new_revision.digest = sha.hexdigest
|
|
||||||
new_revision.save
|
new_revision.save
|
||||||
# Notifications
|
# Notifications
|
||||||
DmsfMailer.deliver_files_updated project, [f]
|
DmsfMailer.deliver_files_updated project, [f]
|
||||||
|
|||||||
@ -48,7 +48,9 @@ class DmsfCreateDigest
|
|||||||
end
|
end
|
||||||
|
|
||||||
def dmsf_create_digests
|
def dmsf_create_digests
|
||||||
revisions = DmsfFileRevision.where(['digest IS NULL OR length(digest) < ?', @force_sha256 ? 64 : 32])
|
revisions = DmsfFileRevision.where(['digest IS NULL OR digest = ? OR length(digest) < ?',
|
||||||
|
'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855', # Wrong version when uploading a document via WebDAV #1385
|
||||||
|
@force_sha256 ? 64 : 32])
|
||||||
count = revisions.count
|
count = revisions.count
|
||||||
n = 0
|
n = 0
|
||||||
revisions.each_with_index do |rev, i|
|
revisions.each_with_index do |rev, i|
|
||||||
|
|||||||
@ -338,5 +338,16 @@ class DmsfWebdavPutTest < RedmineDmsf::Test::IntegrationTest
|
|||||||
assert_response :unprocessable_entity
|
assert_response :unprocessable_entity
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_put_digest
|
||||||
|
assert_difference '@file1.dmsf_file_revisions.count', +1 do
|
||||||
|
put "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", params: '1234',
|
||||||
|
headers: @jsmith.merge!({ content_type: :text })
|
||||||
|
assert_response :created
|
||||||
|
end
|
||||||
|
@file1.last_revision.reload
|
||||||
|
sha = Digest::SHA256.file(@file1.last_revision.disk_file)
|
||||||
|
assert_equal sha, @file1.last_revision.digest
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
Loading…
x
Reference in New Issue
Block a user