Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Léo-Paul Géneau
gitlab-ce
Commits
ea1012cc
Commit
ea1012cc
authored
Jul 13, 2017
by
Bob Van Landuyt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Make the attribute list for application settings reusable
parent
2e483ca9
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
96 additions
and
110 deletions
+96
-110
app/controllers/admin/application_settings_controller.rb
app/controllers/admin/application_settings_controller.rb
+3
-78
app/helpers/application_settings_helper.rb
app/helpers/application_settings_helper.rb
+85
-0
changelogs/unreleased/bvl-add-all-settings-to-api.yml
changelogs/unreleased/bvl-add-all-settings-to-api.yml
+4
-0
lib/api/entities.rb
lib/api/entities.rb
+2
-31
lib/api/settings.rb
lib/api/settings.rb
+2
-1
No files found.
app/controllers/admin/application_settings_controller.rb
View file @
ea1012cc
...
...
@@ -76,88 +76,13 @@ class Admin::ApplicationSettingsController < Admin::ApplicationController
params
.
delete
(
:domain_blacklist_raw
)
if
params
[
:domain_blacklist_file
]
params
.
require
(
:application_setting
).
permit
(
application_setting_params
_attributes
visible_application_setting
_attributes
)
end
def
application_setting_params_attributes
[
:admin_notification_email
,
:after_sign_out_path
,
:after_sign_up_text
,
:akismet_api_key
,
:akismet_enabled
,
:container_registry_token_expire_delay
,
:default_artifacts_expire_in
,
:default_branch_protection
,
:default_group_visibility
,
:default_project_visibility
,
:default_projects_limit
,
:default_snippet_visibility
,
:domain_blacklist_enabled
,
def
visible_application_setting_attributes
ApplicationSettingsHelper
.
visible_attributes
+
[
:domain_blacklist_file
,
:domain_blacklist_raw
,
:domain_whitelist_raw
,
:email_author_in_body
,
:enabled_git_access_protocol
,
:gravatar_enabled
,
:help_page_text
,
:help_page_hide_commercial_content
,
:help_page_support_url
,
:home_page_url
,
:housekeeping_bitmaps_enabled
,
:housekeeping_enabled
,
:housekeeping_full_repack_period
,
:housekeeping_gc_period
,
:housekeeping_incremental_repack_period
,
:html_emails_enabled
,
:koding_enabled
,
:koding_url
,
:password_authentication_enabled
,
:plantuml_enabled
,
:plantuml_url
,
:max_artifacts_size
,
:max_attachment_size
,
:max_pages_size
,
:metrics_enabled
,
:metrics_host
,
:metrics_method_call_threshold
,
:metrics_packet_size
,
:metrics_pool_size
,
:metrics_port
,
:metrics_sample_interval
,
:metrics_timeout
,
:performance_bar_allowed_group_id
,
:performance_bar_enabled
,
:recaptcha_enabled
,
:recaptcha_private_key
,
:recaptcha_site_key
,
:repository_checks_enabled
,
:require_two_factor_authentication
,
:session_expire_delay
,
:sign_in_text
,
:signup_enabled
,
:sentry_dsn
,
:sentry_enabled
,
:clientside_sentry_dsn
,
:clientside_sentry_enabled
,
:send_user_confirmation_email
,
:shared_runners_enabled
,
:shared_runners_text
,
:sidekiq_throttling_enabled
,
:sidekiq_throttling_factor
,
:two_factor_grace_period
,
:user_default_external
,
:user_oauth_applications
,
:unique_ips_limit_per_user
,
:unique_ips_limit_time_window
,
:unique_ips_limit_enabled
,
:version_check_enabled
,
:terminal_max_session_time
,
:polling_interval_multiplier
,
:prometheus_metrics_enabled
,
:usage_ping_enabled
,
disabled_oauth_sign_in_sources:
[],
import_sources:
[],
repository_storages:
[],
...
...
app/helpers/application_settings_helper.rb
View file @
ea1012cc
module
ApplicationSettingsHelper
extend
self
delegate
:gravatar_enabled?
,
:signup_enabled?
,
:password_authentication_enabled?
,
...
...
@@ -91,4 +92,88 @@ module ApplicationSettingsHelper
def
sidekiq_queue_options_for_select
options_for_select
(
Sidekiq
::
Queue
.
all
.
map
(
&
:name
),
@application_setting
.
sidekiq_throttling_queues
)
end
def
visible_attributes
[
:admin_notification_email
,
:after_sign_out_path
,
:after_sign_up_text
,
:akismet_api_key
,
:akismet_enabled
,
:clientside_sentry_dsn
,
:clientside_sentry_enabled
,
:container_registry_token_expire_delay
,
:default_artifacts_expire_in
,
:default_branch_protection
,
:default_group_visibility
,
:default_project_visibility
,
:default_projects_limit
,
:default_snippet_visibility
,
:disabled_oauth_sign_in_sources
,
:domain_blacklist_enabled
,
:domain_blacklist_raw
,
:domain_whitelist_raw
,
:email_author_in_body
,
:enabled_git_access_protocol
,
:gravatar_enabled
,
:help_page_hide_commercial_content
,
:help_page_support_url
,
:help_page_text
,
:home_page_url
,
:housekeeping_bitmaps_enabled
,
:housekeeping_enabled
,
:housekeeping_full_repack_period
,
:housekeeping_gc_period
,
:housekeeping_incremental_repack_period
,
:html_emails_enabled
,
:import_sources
,
:koding_enabled
,
:koding_url
,
:max_artifacts_size
,
:max_attachment_size
,
:max_pages_size
,
:metrics_enabled
,
:metrics_host
,
:metrics_method_call_threshold
,
:metrics_packet_size
,
:metrics_pool_size
,
:metrics_port
,
:metrics_sample_interval
,
:metrics_timeout
,
:password_authentication_enabled
,
:performance_bar_allowed_group_id
,
:performance_bar_enabled
,
:plantuml_enabled
,
:plantuml_url
,
:polling_interval_multiplier
,
:prometheus_metrics_enabled
,
:recaptcha_enabled
,
:recaptcha_private_key
,
:recaptcha_site_key
,
:repository_checks_enabled
,
:repository_storages
,
:require_two_factor_authentication
,
:restricted_visibility_levels
,
:send_user_confirmation_email
,
:sentry_dsn
,
:sentry_enabled
,
:session_expire_delay
,
:shared_runners_enabled
,
:shared_runners_text
,
:sidekiq_throttling_enabled
,
:sidekiq_throttling_factor
,
:sidekiq_throttling_queues
,
:sign_in_text
,
:signup_enabled
,
:terminal_max_session_time
,
:two_factor_grace_period
,
:unique_ips_limit_enabled
,
:unique_ips_limit_per_user
,
:unique_ips_limit_time_window
,
:usage_ping_enabled
,
:user_default_external
,
:user_oauth_applications
,
:version_check_enabled
]
end
end
changelogs/unreleased/bvl-add-all-settings-to-api.yml
0 → 100644
View file @
ea1012cc
---
title
:
Make all application-settings accessible through the API
merge_request
:
12851
author
:
lib/api/entities.rb
View file @
ea1012cc
...
...
@@ -671,43 +671,14 @@ module API
class
ApplicationSetting
<
Grape
::
Entity
expose
:id
expose
:default_projects_limit
expose
:signup_enabled
expose
:password_authentication_enabled
expose
:password_authentication_enabled
,
as: :signin_enabled
expose
:gravatar_enabled
expose
:sign_in_text
expose
:after_sign_up_text
expose
:created_at
expose
:updated_at
expose
:home_page_url
expose
:default_branch_protection
expose
(
*::
ApplicationSettingsHelper
.
visible_attributes
)
expose
(
:restricted_visibility_levels
)
do
|
setting
,
_options
|
setting
.
restricted_visibility_levels
.
map
{
|
level
|
Gitlab
::
VisibilityLevel
.
string_level
(
level
)
}
end
expose
:max_attachment_size
expose
:session_expire_delay
expose
(
:default_project_visibility
)
{
|
setting
,
_options
|
Gitlab
::
VisibilityLevel
.
string_level
(
setting
.
default_project_visibility
)
}
expose
(
:default_snippet_visibility
)
{
|
setting
,
_options
|
Gitlab
::
VisibilityLevel
.
string_level
(
setting
.
default_snippet_visibility
)
}
expose
(
:default_group_visibility
)
{
|
setting
,
_options
|
Gitlab
::
VisibilityLevel
.
string_level
(
setting
.
default_group_visibility
)
}
expose
:default_artifacts_expire_in
expose
:domain_whitelist
expose
:domain_blacklist_enabled
expose
:domain_blacklist
expose
:user_oauth_applications
expose
:after_sign_out_path
expose
:container_registry_token_expire_delay
expose
:repository_storage
expose
:repository_storages
expose
:koding_enabled
expose
:koding_url
expose
:plantuml_enabled
expose
:plantuml_url
expose
:terminal_max_session_time
expose
:polling_interval_multiplier
expose
:help_page_hide_commercial_content
expose
:help_page_text
expose
:help_page_support_url
expose
:password_authentication_enabled
,
as: :signin_enabled
end
class
Release
<
Grape
::
Entity
...
...
lib/api/settings.rb
View file @
ea1012cc
...
...
@@ -174,7 +174,8 @@ module API
optional
:terminal_max_session_time
,
type:
Integer
,
desc:
'Maximum time for web terminal websocket connection (in seconds). Set to 0 for unlimited time.'
optional
:polling_interval_multiplier
,
type:
BigDecimal
,
desc:
'Interval multiplier used by endpoints that perform polling. Set to 0 to disable polling.'
at_least_one_of
(
*
at_least_one_of_ce
)
optional
(
*::
ApplicationSettingsHelper
.
visible_attributes
)
at_least_one_of
(
*::
ApplicationSettingsHelper
.
visible_attributes
)
end
put
"application/settings"
do
attrs
=
declared_params
(
include_missing:
false
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment