Commit 6d246d56d8d3c9f1669a9e97cdd81e59c625ec4d

Authored by JoenioCosta
1 parent 85fd17e1

ActionItem192: filtering html input user from products

git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@1678 3f533792-8f58-4932-b0fe-aaf55b0a4547
app/controllers/my_profile/manage_products_controller.rb
@@ -56,5 +56,16 @@ class ManageProductsController < ApplicationController @@ -56,5 +56,16 @@ class ManageProductsController < ApplicationController
56 @categories = @current_category.children 56 @categories = @current_category.children
57 render :partial => 'subcategories' 57 render :partial => 'subcategories'
58 end 58 end
  59 +
  60 + private
  61 +
  62 + require 'erb'
  63 + include ERB::Util
  64 + def sanitize
  65 + if params[:product]
  66 + params[:product][:name] = html_escape(params[:product][:name]) if params[:product][:name]
  67 + params[:product][:description] = html_escape(params[:product][:description]) if params[:product][:description]
  68 + end
  69 + end
59 70
60 end 71 end
test/functional/manage_products_controller_test.rb
@@ -169,4 +169,16 @@ class ManageProductsControllerTest < Test::Unit::TestCase @@ -169,4 +169,16 @@ class ManageProductsControllerTest < Test::Unit::TestCase
169 assert_tag :tag => 'input', :attributes => { :type => 'file', :name => 'product[image_builder][uploaded_data]' } 169 assert_tag :tag => 'input', :attributes => { :type => 'file', :name => 'product[image_builder][uploaded_data]' }
170 end 170 end
171 171
  172 + should 'filter html from name of product' do
  173 + category = ProductCategory.create!(:name => 'Category 1', :environment => Environment.default)
  174 + post 'new', :profile => @enterprise.identifier, :product => { :name => "<b id='html_name'>name bold</b>", :product_category_id => category.id }
  175 + assert_not_equal assigns(:product).name, "<b id='html_name'>name bold</b>"
  176 + end
  177 +
  178 + should 'filter html from description of product' do
  179 + category = ProductCategory.create!(:name => 'Category 1', :environment => Environment.default)
  180 + post 'new', :profile => @enterprise.identifier, :product => { :name => 'name', :description => "<b id='html_descr'>descr bold</b>", :product_category_id => category.id }
  181 + assert_not_equal assigns(:product).description, "<b id='html_descr'>descr bold</b>"
  182 + end
  183 +
172 end 184 end