ref: refs/heads/master
commit a9419c0645456e620bdca3bafc686a863d47b546
Author: Martin Kudlvasr
Date: Wed Nov 11 18:15:33 2009 +0100
accept only true, false, "true", "false" as boolean params
---
plugins/eulas/app/controllers/eulas_controller.rb | 3 ++-
.../eulas/test/functional/eulas_controller_test.rb | 5 ++++-
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/plugins/eulas/app/controllers/eulas_controller.rb b/plugins/eulas/app/controllers/eulas_controller.rb
index 8e4cc57..b236f86 100644
--- a/plugins/eulas/app/controllers/eulas_controller.rb
+++ b/plugins/eulas/app/controllers/eulas_controller.rb
@@ -36,9 +36,10 @@ class EulasController < ApplicationController
# Save updated license data. The only changeable attribute is "accepted"
def update
raise InvalidParameters.new({:id => 'MISSING'}) if params[:id].nil?
+ raise InvalidParameters.new({:eulas_accepted => 'INVALID'}) unless [true,false,"true","false"].include? params[:eulas][:accepted]
@license = License.find params[:id]
render ErrorResult.error(404, 1, "License not found") and return if @license.nil?
- @license.accepted = params[:eulas][:accepted] == "true" ? true : false
+ @license.accepted = ([true,"true"].include? params[:eulas][:accepted]) ? true : false
@license.save
respond_to do |format|
format.xml { render :xml => @license.to_xml }
diff --git a/plugins/eulas/test/functional/eulas_controller_test.rb b/plugins/eulas/test/functional/eulas_controller_test.rb
index 0cbf6c5..69e3024 100644
--- a/plugins/eulas/test/functional/eulas_controller_test.rb
+++ b/plugins/eulas/test/functional/eulas_controller_test.rb
@@ -14,7 +14,7 @@ EOF
"format"=>"xml",
"eulas"=>{"name" =>"openSUSE-11.1",
"id" =>"1",
- "accepted"=>"true"
+ "accepted"=>true
}
}
@@ -48,6 +48,9 @@ EOF
License.any_instance.expects(:save).returns(nil)
get :update, UPDATE_DATA
assert_response :success
+ (more_update_data = UPDATE_DATA)["eulas"]["accepted"] = "true"
+ get :update, more_update_data
+ assert_response :success
end
end
--
To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org
For additional commands, e-mail: yast-commit+help@opensuse.org