Use page.sha instead of a content-based hash for collision detection.

This commit is contained in:
Bart Kamphorst
2018-11-19 12:58:30 +01:00
parent d4a9da0db5
commit efd1d3992d
+2 -2
View File
@@ -176,7 +176,7 @@ module Precious
@page = page @page = page
@page.version = wiki.repo.log(wiki.ref, @page.path).first @page.version = wiki.repo.log(wiki.ref, @page.path).first
@content = page.text_data @content = page.text_data
@etag = Digest::SHA1.hexdigest(@content) @etag = page.sha
mustache :edit mustache :edit
else else
redirect_to("/create/#{encodeURIComponent(@name)}") redirect_to("/create/#{encodeURIComponent(@name)}")
@@ -286,7 +286,7 @@ module Precious
page = wiki.paged(page_name, path, exact = true) page = wiki.paged(page_name, path, exact = true)
return if page.nil? return if page.nil?
if etag != Digest::SHA1.hexdigest(page.text_data) if etag != page.sha
halt 412, 'For future use: some helpful data for resolving the conflict here.' halt 412, 'For future use: some helpful data for resolving the conflict here.'
end end