Project

General

Profile

« Previous | Next » 

Revision aa0ebe8e

Added by Ohad Levy about 10 years ago

fixes #5436 - provisioning templates are world accessible

View differences:

app/controllers/unattended_controller.rb
FILTERS = [:require_ssl, :require_login, :session_expiry, :update_activity_time, :set_taxonomy, :authorize]
FILTERS.each do |f|
define_method("#{f}_with_unattended") do
send("#{f}_without_unattended") if params.keys.include?("spoof")
send("#{f}_without_unattended") if params.key?(:spoof) or params.key?(:hostname)
end
alias_method_chain f, :unattended
end
test/functional/unattended_controller_test.rb
assert_response :success
end
test "should render spoof when user is not logged in" do
test "should not render spoof when user is not logged in" do
get :provision, {:spoof => hosts(:ubuntu).ip}
assert_response :redirect
end
test "should support spoof using hostname" do
test "should not render hostname spoof when user is not logged in" do
get :provision, {:hostname => hosts(:ubuntu).fqdn}
assert_response :redirect
end
test "should not render hostname spoof when hostname is empty" do
get :provision, {:hostname => nil}, set_session_user
assert_response 404
end
test "should not render hostname spoof when spoof is empty" do
get :provision, {:spoof => nil}, set_session_user
assert_response 404
end
test "should support spoof using hostname" do
get :provision, {:hostname => hosts(:ubuntu).name}, set_session_user
assert_response :success
assert_equal hosts(:ubuntu).name, assigns(:host).name

Also available in: Unified diff