summaryrefslogtreecommitdiff
path: root/db
diff options
context:
space:
mode:
authorFelipe Artur <felipefac@gmail.com>2016-03-16 19:44:33 -0300
committerFelipe Artur <felipefac@gmail.com>2016-03-16 19:44:33 -0300
commitec20fdf366843e60ed30abb5322c3c1b8f471b4a (patch)
treefd33118e0af74924bcb20a1696d91f85f6cd463c /db
parentde251bcf6d0f1db8858fa38ac14e108c1b9ea00f (diff)
downloadgitlab-ce-ec20fdf366843e60ed30abb5322c3c1b8f471b4a.tar.gz
Code improvements and add Create group service
Diffstat (limited to 'db')
-rw-r--r--db/migrate/20160308212903_add_default_group_visibility_to_application_settings.rb20
-rw-r--r--db/schema.rb2
2 files changed, 19 insertions, 3 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
index c2bdd7b31fa..b71322376fa 100644
--- a/db/migrate/20160308212903_add_default_group_visibility_to_application_settings.rb
+++ b/db/migrate/20160308212903_add_default_group_visibility_to_application_settings.rb
@@ -1,11 +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
- visibility = Settings.gitlab.default_groups_features['visibility_level']
- execute("update application_settings set default_group_visibility = #{visibility}")
+ 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
+ default_visibility = Settings.gitlab.default_groups_features['visibility_level']
+ restricted_levels = current_application_settings.restricted_visibility_levels
+ return default_visibility unless restricted_levels.present?
+
+ if restricted_levels.include?(default_visibility)
+ Gitlab::VisibilityLevel.values.select{ |vis_level| vis_level unless restricted_levels.include?(vis_level) }.last
+ else
+ default_visibility
+ end
+ end
end
diff --git a/db/schema.rb b/db/schema.rb
index 082d681a176..292a9100d9c 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -11,7 +11,7 @@
#
# It's strongly recommended that you check this file into your version control system.
-ActiveRecord::Schema.define(version: 20160308212903) do
+ActiveRecord::Schema.define(version: 20160309140734) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"