summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStan Hu <stanhu@gmail.com>2015-04-24 08:33:24 -0700
committerStan Hu <stanhu@gmail.com>2015-04-24 08:33:24 -0700
commit2f045997516a11622a7c7229ac08ac0d288813df (patch)
tree8e56883b8cc6bf2f726b99caec7414c05dbe0c84
parent62117f2f25646009fb5b20d7a215d7d697ce3231 (diff)
downloadgitlab-ce-2f045997516a11622a7c7229ac08ac0d288813df.tar.gz
Fix bug where Slack service channel was not saved in admin template settings.
Consolidate allowed parameters in one place to avoid these kinds of bugs in the future. Closes https://github.com/gitlabhq/gitlabhq/issues/9181
-rw-r--r--CHANGELOG2
-rw-r--r--app/controllers/admin/services_controller.rb11
-rw-r--r--app/controllers/projects/services_controller.rb19
-rw-r--r--features/admin/settings.feature3
-rw-r--r--features/steps/admin/settings.rb13
5 files changed, 26 insertions, 22 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 0d6b0f2d942..87189d97103 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -16,7 +16,7 @@ v 7.11.0 (unreleased)
- Include commit comments in MR from a forked project.
-
-
- -
+ - Fix bug where Slack service channel was not saved in admin template settings. (Stan Hu)
- Move snippets UI to fluid layout
- Improve UI for sidebar. Increase separation between navigation and content
- Improve new project command options (Ben Bodenmiller)
diff --git a/app/controllers/admin/services_controller.rb b/app/controllers/admin/services_controller.rb
index c1fdcd7fab6..a62170662e1 100644
--- a/app/controllers/admin/services_controller.rb
+++ b/app/controllers/admin/services_controller.rb
@@ -40,15 +40,6 @@ class Admin::ServicesController < Admin::ApplicationController
def application_services_params
params.permit(:id,
- service: [
- :title, :token, :type, :active, :api_key, :subdomain,
- :room, :recipients, :project_url, :webhook,
- :user_key, :device, :priority, :sound, :bamboo_url, :username, :password,
- :build_key, :server, :teamcity_url, :build_type,
- :description, :issues_url, :new_issue_url, :restrict_to_branch,
- :send_from_committer_email, :disable_diffs,
- :push_events, :tag_push_events, :note_events, :issues_events,
- :merge_requests_events
- ])
+ service: Projects::ServicesController::ALLOWED_PARAMS)
end
end
diff --git a/app/controllers/projects/services_controller.rb b/app/controllers/projects/services_controller.rb
index ae8146dca59..73031851734 100644
--- a/app/controllers/projects/services_controller.rb
+++ b/app/controllers/projects/services_controller.rb
@@ -1,4 +1,12 @@
class Projects::ServicesController < Projects::ApplicationController
+ ALLOWED_PARAMS = [:title, :token, :type, :active, :api_key, :subdomain,
+ :room, :recipients, :project_url, :webhook,
+ :user_key, :device, :priority, :sound, :bamboo_url, :username, :password,
+ :build_key, :server, :teamcity_url, :build_type,
+ :description, :issues_url, :new_issue_url, :restrict_to_branch, :channel,
+ :colorize_messages, :channels,
+ :push_events, :issues_events, :merge_requests_events, :tag_push_events,
+ :note_events, :send_from_committer_email, :disable_diffs, :external_wiki_url]
# Authorize
before_action :authorize_admin_project!
before_action :service, only: [:edit, :update, :test]
@@ -45,15 +53,6 @@ class Projects::ServicesController < Projects::ApplicationController
end
def service_params
- params.require(:service).permit(
- :title, :token, :type, :active, :api_key, :subdomain,
- :room, :recipients, :project_url, :webhook,
- :user_key, :device, :priority, :sound, :bamboo_url, :username, :password,
- :build_key, :server, :teamcity_url, :build_type,
- :description, :issues_url, :new_issue_url, :restrict_to_branch, :channel,
- :colorize_messages, :channels,
- :push_events, :issues_events, :merge_requests_events, :tag_push_events,
- :note_events, :send_from_committer_email, :disable_diffs, :external_wiki_url
- )
+ params.require(:service).permit(ALLOWED_PARAMS)
end
end
diff --git a/features/admin/settings.feature b/features/admin/settings.feature
index 52e47307b23..e38eea2cfed 100644
--- a/features/admin/settings.feature
+++ b/features/admin/settings.feature
@@ -11,6 +11,9 @@ Feature: Admin Settings
Scenario: Change Slack Service Template settings
When I click on "Service Templates"
And I click on "Slack" service
+ And I fill out Slack settings
Then I check all events and submit form
And I should see service template settings saved
+ Then I click on "Slack" service
And I should see all checkboxes checked
+ And I should see Slack settings saved
diff --git a/features/steps/admin/settings.rb b/features/steps/admin/settings.rb
index 87d4e969ff5..15ca0d80f1a 100644
--- a/features/steps/admin/settings.rb
+++ b/features/steps/admin/settings.rb
@@ -31,10 +31,15 @@ class Spinach::Features::AdminSettings < Spinach::FeatureSteps
page.check('Comments')
page.check('Issues events')
page.check('Merge Request events')
- fill_in 'Webhook', with: "http://localhost"
click_on 'Save'
end
+ step 'I fill out Slack settings' do
+ fill_in 'Webhook', with: 'http://localhost'
+ fill_in 'Username', with: 'test_user'
+ fill_in 'Channel', with: '#test_channel'
+ end
+
step 'I should see service template settings saved' do
page.should have_content 'Application settings saved successfully'
end
@@ -44,4 +49,10 @@ class Spinach::Features::AdminSettings < Spinach::FeatureSteps
checkbox.should be_checked
end
end
+
+ step 'I should see Slack settings saved' do
+ find_field('Webhook').value.should eq 'http://localhost'
+ find_field('Username').value.should eq 'test_user'
+ find_field('Channel').value.should eq '#test_channel'
+ end
end