Override setters so it also accepts string visibility levels
Override the `ApplicationSetting` default visibility_level setters so they accept strings & integers for the levels.
This commit is contained in:
parent
a3fdd6acd2
commit
c3b1cb71f0
2 changed files with 17 additions and 15 deletions
|
@ -278,6 +278,22 @@ class ApplicationSetting < ActiveRecord::Base
|
|||
self.repository_storages = [value]
|
||||
end
|
||||
|
||||
def default_project_visibility=(level)
|
||||
super(Gitlab::VisibilityLevel.level_value(level))
|
||||
end
|
||||
|
||||
def default_snippet_visibility=(level)
|
||||
super(Gitlab::VisibilityLevel.level_value(level))
|
||||
end
|
||||
|
||||
def default_group_visibility=(level)
|
||||
super(Gitlab::VisibilityLevel.level_value(level))
|
||||
end
|
||||
|
||||
def restricted_visibility_levels=(levels)
|
||||
super(levels.map { |level| Gitlab::VisibilityLevel.level_value(level) })
|
||||
end
|
||||
|
||||
# Choose one of the available repository storage options. Currently all have
|
||||
# equal weighting.
|
||||
def pick_repository_storage
|
||||
|
|
|
@ -7,20 +7,6 @@ module API
|
|||
@current_setting ||=
|
||||
(ApplicationSetting.current || ApplicationSetting.create_from_defaults)
|
||||
end
|
||||
|
||||
def map_setting_visibility_levels(attrs)
|
||||
[:default_project_visibility, :default_snippet_visibility, :default_group_visibility].each do |param|
|
||||
visibility = attrs.delete(param)
|
||||
if visibility
|
||||
attrs[param] = Gitlab::VisibilityLevel.string_options[visibility]
|
||||
end
|
||||
end
|
||||
restricted_levels = attrs.delete(:restricted_visibility_levels)
|
||||
if restricted_levels
|
||||
attrs[:restricted_visibility_levels] = Gitlab::VisibilityLevel.string_options.values_at(*restricted_levels)
|
||||
end
|
||||
attrs
|
||||
end
|
||||
end
|
||||
|
||||
desc 'Get the current application settings' do
|
||||
|
@ -142,7 +128,7 @@ module API
|
|||
:housekeeping_enabled, :terminal_max_session_time
|
||||
end
|
||||
put "application/settings" do
|
||||
attrs = map_setting_visibility_levels(declared_params(include_missing: false))
|
||||
attrs = declared_params(include_missing: false)
|
||||
|
||||
if current_settings.update_attributes(attrs)
|
||||
present current_settings, with: Entities::ApplicationSetting
|
||||
|
|
Loading…
Reference in a new issue