]> source.dussan.org Git - redmine.git/commitdiff
Add a randomized name attribute to all form fields (#26604).
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Thu, 20 Jun 2019 16:46:10 +0000 (16:46 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Thu, 20 Jun 2019 16:46:10 +0000 (16:46 +0000)
This is a workaround for a Bug in Firefox described at
https://bugzilla.mozilla.org/show_bug.cgi?id=1279253

Patch by Holger Just.

git-svn-id: http://svn.redmine.org/redmine/trunk@18306 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/helpers/application_helper.rb
test/helpers/application_helper_test.rb

index 1b259b44b57cc81cbc8c75746f5912a2c95fe955..db4b3efb4c29c6f63da5ec10164275cce2ce9a71 100644 (file)
@@ -1306,6 +1306,13 @@ module ApplicationHelper
     fields_for(*args, &proc)
   end
 
+  def form_tag_html(html_options)
+    # Set a randomized name attribute on all form fields by default
+    # as a workaround to https://bugzilla.mozilla.org/show_bug.cgi?id=1279253
+    html_options['name'] ||= "#{html_options['id'] || 'form'}-#{SecureRandom.hex(4)}"
+    super
+  end
+
   # Render the error messages for the given objects
   def error_messages_for(*objects)
     objects = objects.map {|o| o.is_a?(String) ? instance_variable_get("@#{o}") : o}.compact
index f467201205a5875e5037473cdefb764693956ddf..9abf47fa768236a668f469c03d08d7603c396e8f 100644 (file)
@@ -1807,6 +1807,15 @@ RAW
     assert_equal '<span class="hours hours-int">0</span><span class="hours hours-dec">.75</span>', html_hours('0.75')
   end
 
+  def test_form_for_includes_name_attribute
+    assert_match(/name="new_issue-[a-z0-9]{8}"/, form_for(Issue.new){})
+  end
+
+  def test_labelled_form_for_includes_name_attribute
+    assert_match(/name="new_issue-[a-z0-9]{8}"/, labelled_form_for(Issue.new){})
+  end
+
+
   private
 
   def wiki_links_with_special_characters