summaryrefslogtreecommitdiff
path: root/app/controllers/admin/application_settings_controller.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/controllers/admin/application_settings_controller.rb')
-rw-r--r--app/controllers/admin/application_settings_controller.rb44
1 files changed, 44 insertions, 0 deletions
diff --git a/app/controllers/admin/application_settings_controller.rb b/app/controllers/admin/application_settings_controller.rb
new file mode 100644
index 00000000000..9a5685877f8
--- /dev/null
+++ b/app/controllers/admin/application_settings_controller.rb
@@ -0,0 +1,44 @@
+class Admin::ApplicationSettingsController < Admin::ApplicationController
+ before_filter :set_application_setting
+
+ def show
+ end
+
+ def update
+ if @application_setting.update_attributes(application_setting_params)
+ redirect_to admin_application_settings_path,
+ notice: 'Application settings saved successfully'
+ else
+ render :show
+ end
+ end
+
+ private
+
+ def set_application_setting
+ @application_setting = ApplicationSetting.current
+ end
+
+ def application_setting_params
+ restricted_levels = params[:application_setting][:restricted_visibility_levels]
+ if restricted_levels.nil?
+ params[:application_setting][:restricted_visibility_levels] = []
+ else
+ restricted_levels.map! do |level|
+ level.to_i
+ end
+ end
+
+ params.require(:application_setting).permit(
+ :default_projects_limit,
+ :default_branch_protection,
+ :signup_enabled,
+ :signin_enabled,
+ :gravatar_enabled,
+ :twitter_sharing_enabled,
+ :sign_in_text,
+ :home_page_url,
+ restricted_visibility_levels: []
+ )
+ end
+end