Commit 39772a01 authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets

Merge branch 'fix-null-visibility' into 'master'

Handle null restricted_visibility_levels setting

Fix a 500 error when the `restricted_visibility_levels` setting is null in the database - see #2134.

See merge request !1705
parents ba0d2a46 2e672c39
......@@ -21,7 +21,9 @@ class Admin::ApplicationSettingsController < Admin::ApplicationController
def application_setting_params
restricted_levels = params[:application_setting][:restricted_visibility_levels]
unless restricted_levels.nil?
if restricted_levels.nil?
params[:application_setting][:restricted_visibility_levels] = []
else
restricted_levels.map! do |level|
level.to_i
end
......
......@@ -62,6 +62,6 @@ module VisibilityLevelHelper
def restricted_visibility_levels(show_all = false)
return [] if current_user.is_admin? && !show_all
current_application_settings.restricted_visibility_levels
current_application_settings.restricted_visibility_levels || []
end
end
......@@ -27,9 +27,11 @@ class ApplicationSetting < ActiveRecord::Base
if: :home_page_url_column_exist
validates_each :restricted_visibility_levels do |record, attr, value|
value.each do |level|
unless Gitlab::VisibilityLevel.options.has_value?(level)
record.errors.add(attr, "'#{level}' is not a valid visibility level")
unless value.nil?
value.each do |level|
unless Gitlab::VisibilityLevel.options.has_value?(level)
record.errors.add(attr, "'#{level}' is not a valid visibility level")
end
end
end
end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment