summaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2009-12-20 09:44:28 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2009-12-20 09:44:28 +0000
commitcf9bb2699fa146514b219e1fd3dce6e367f274ce (patch)
treeffe2c6f9760dd5ecb5b1b60f03dded9ec6c13166 /app
parent4398386c48bb70e99e543cca166f704853d3c664 (diff)
downloadredmine-cf9bb2699fa146514b219e1fd3dce6e367f274ce.tar.gz
redmine-cf9bb2699fa146514b219e1fd3dce6e367f274ce.zip
Adds on optional API key to repositories management controller and reposman.rb.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3201 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'app')
-rw-r--r--app/controllers/sys_controller.rb4
-rw-r--r--app/views/settings/_repositories.rhtml10
2 files changed, 11 insertions, 3 deletions
diff --git a/app/controllers/sys_controller.rb b/app/controllers/sys_controller.rb
index 5e74192a9..be88eb232 100644
--- a/app/controllers/sys_controller.rb
+++ b/app/controllers/sys_controller.rb
@@ -59,8 +59,8 @@ class SysController < ActionController::Base
def check_enabled
User.current = nil
- unless Setting.sys_api_enabled?
- render :nothing => 'Access denied. Repository management WS is disabled.', :status => 403
+ unless Setting.sys_api_enabled? && params[:key].to_s == Setting.sys_api_key
+ render :text => 'Access denied. Repository management WS is disabled or key is invalid.', :status => 403
return false
end
end
diff --git a/app/views/settings/_repositories.rhtml b/app/views/settings/_repositories.rhtml
index 83a3846ce..581ebf5fd 100644
--- a/app/views/settings/_repositories.rhtml
+++ b/app/views/settings/_repositories.rhtml
@@ -3,7 +3,15 @@
<div class="box tabular settings">
<p><%= setting_check_box :autofetch_changesets %></p>
-<p><%= setting_check_box :sys_api_enabled %></p>
+<p><%= setting_check_box :sys_api_enabled,
+ :onclick => "if (this.checked) { Form.Element.enable('settings_sys_api_key'); } else { Form.Element.disable('settings_sys_api_key'); }" %></p>
+
+<p><%= setting_text_field :sys_api_key, :size => 30,
+ :id => 'settings_sys_api_key',
+ :disabled => !Setting.sys_api_enabled?,
+ :label => :setting_mail_handler_api_key %>
+ <%= link_to_function l(:label_generate_key), "if ($('settings_sys_api_key').disabled == false) { $('settings_sys_api_key').value = randomKey(20) }" %>
+</p>
<p><%= setting_multiselect(:enabled_scm, REDMINE_SUPPORTED_SCM) %></p>