Patch #12911 ยป make_plugin_settings_path_404_for_non_configurable_plugins.patch
app/controllers/settings_controller.rb (working copy) | ||
---|---|---|
52 | 52 | |
53 | 53 |
def plugin |
54 | 54 |
@plugin = Redmine::Plugin.find(params[:id]) |
55 |
unless @plugin.configurable? |
|
56 |
render_404 |
|
57 |
return |
|
58 |
end |
|
59 | ||
55 | 60 |
if request.post? |
56 | 61 |
Setting.send "plugin_#{@plugin.id}=", params[:settings] |
57 | 62 |
flash[:notice] = l(:notice_successful_update) |
test/functional/settings_controller_test.rb (working copy) | ||
---|---|---|
101 | 101 |
assert_response 404 |
102 | 102 |
end |
103 | 103 | |
104 |
def test_get_non_configurable_plugin_settings |
|
105 |
Redmine::Plugin.register(:foo) {} |
|
106 | ||
107 |
get :plugin, :id => 'foo' |
|
108 |
assert_response 404 |
|
109 | ||
110 |
Redmine::Plugin.clear |
|
111 |
end |
|
112 | ||
104 | 113 |
def test_post_plugin_settings |
105 | 114 |
Setting.expects(:plugin_foo=).with({'sample_setting' => 'Value'}).returns(true) |
106 |
Redmine::Plugin.register(:foo) {} |
|
115 |
Redmine::Plugin.register(:foo) do |
|
116 |
settings :partial => 'not blank' # so that configurable? is true |
|
117 |
end |
|
107 | 118 | |
108 | 119 |
post :plugin, :id => 'foo', :settings => {'sample_setting' => 'Value'} |
109 | 120 |
assert_redirected_to '/settings/plugin/foo' |
110 | 121 |
end |
122 | ||
123 |
def test_post_non_configurable_plugin_settings |
|
124 |
Redmine::Plugin.register(:foo) {} |
|
125 | ||
126 |
post :plugin, :id => 'foo', :settings => {'sample_setting' => 'Value'} |
|
127 |
assert_response 404 |
|
128 | ||
129 |
Redmine::Plugin.clear |
|
130 |
end |
|
111 | 131 |
end |