diff options
author | Douwe Maan <douwe@selenight.nl> | 2016-03-22 00:09:20 +0100 |
---|---|---|
committer | Douwe Maan <douwe@selenight.nl> | 2016-03-22 00:09:20 +0100 |
commit | 31266c5be4748f57a7d56bbcc6f06d570cbf5356 (patch) | |
tree | 1ee744a7303335cf1a270d92ec6b9e955a52cace /db/migrate/20160308212903_add_default_group_visibility_to_application_settings.rb | |
parent | ae7b2ef62cdf61c990f914d776a6fdfc2bc49fa2 (diff) | |
download | gitlab-ce-31266c5be4748f57a7d56bbcc6f06d570cbf5356.tar.gz |
Address feedback
Diffstat (limited to 'db/migrate/20160308212903_add_default_group_visibility_to_application_settings.rb')
-rw-r--r-- | db/migrate/20160308212903_add_default_group_visibility_to_application_settings.rb | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/db/migrate/20160308212903_add_default_group_visibility_to_application_settings.rb b/db/migrate/20160308212903_add_default_group_visibility_to_application_settings.rb new file mode 100644 index 00000000000..37179926d42 --- /dev/null +++ b/db/migrate/20160308212903_add_default_group_visibility_to_application_settings.rb @@ -0,0 +1,27 @@ +# Create visibility level field on DB +# Sets default_visibility_level to value on settings if not restricted +# If value is restricted takes higher visibility level allowed + +class AddDefaultGroupVisibilityToApplicationSettings < ActiveRecord::Migration + def up + add_column :application_settings, :default_group_visibility, :integer + execute("UPDATE application_settings SET default_group_visibility = #{allowed_visibility_level}") + end + + def down + remove_column :application_settings, :default_group_visibility + end + + private + + def allowed_visibility_level + application_settings = select_one("SELECT restricted_visibility_levels FROM application_settings ORDER BY id DESC LIMIT 1") + if application_settings + restricted_visibility_levels = YAML.safe_load(application_settings["restricted_visibility_levels"]) rescue nil + end + restricted_visibility_levels ||= [] + + allowed_levels = Gitlab::VisibilityLevel.values - restricted_visibility_levels + allowed_levels.max + end +end |