summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2016-03-11 19:03:19 +0100
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2016-03-11 19:03:19 +0100
commit9a95b15552fa8920800274324aa65900360e8038 (patch)
tree5fa79dfb3fc72008bad0044e0d0723b542a90415
parent068fd5de8a45ef0814c500df10d3b9d39496fcd9 (diff)
downloadgitlab-ce-9a95b15552fa8920800274324aa65900360e8038.tar.gz
Add share project from group lock
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
-rw-r--r--app/controllers/groups_controller.rb2
-rw-r--r--app/models/project.rb3
-rw-r--r--app/views/groups/edit.html.haml9
-rw-r--r--db/migrate/20150930110012_add_group_share_lock.rb5
-rw-r--r--db/schema.rb7
5 files changed, 20 insertions, 6 deletions
diff --git a/app/controllers/groups_controller.rb b/app/controllers/groups_controller.rb
index bd6b44bdbbc..e8d9d9fb344 100644
--- a/app/controllers/groups_controller.rb
+++ b/app/controllers/groups_controller.rb
@@ -133,7 +133,7 @@ class GroupsController < Groups::ApplicationController
end
def group_params
- params.require(:group).permit(:name, :description, :path, :avatar, :public)
+ params.require(:group).permit(:name, :description, :path, :avatar, :public, :share_with_group_lock)
end
def load_events
diff --git a/app/models/project.rb b/app/models/project.rb
index 56865459724..40f8c4c83da 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -881,8 +881,7 @@ class Project < ActiveRecord::Base
end
def allowed_to_share_with_group?
- # TODO: replace with logic
- true
+ !namespace.share_with_group_lock
end
def ci_commit(sha)
diff --git a/app/views/groups/edit.html.haml b/app/views/groups/edit.html.haml
index 3430f56a9c9..83936d39b16 100644
--- a/app/views/groups/edit.html.haml
+++ b/app/views/groups/edit.html.haml
@@ -23,6 +23,15 @@
%hr
= link_to 'Remove avatar', group_avatar_path(@group.to_param), data: { confirm: "Group avatar will be removed. Are you sure?"}, method: :delete, class: "btn btn-remove btn-sm remove-avatar"
+ .form-group
+ %hr
+ = f.label :share_with_group_lock, class: 'control-label' do
+ Share with group lock
+ .col-sm-10
+ .checkbox
+ = f.check_box :share_with_group_lock
+ %span.descr Prevent sharing a project with another group within this group
+
.form-actions
= f.submit 'Save group', class: "btn btn-save"
diff --git a/db/migrate/20150930110012_add_group_share_lock.rb b/db/migrate/20150930110012_add_group_share_lock.rb
new file mode 100644
index 00000000000..78d1a4538f2
--- /dev/null
+++ b/db/migrate/20150930110012_add_group_share_lock.rb
@@ -0,0 +1,5 @@
+class AddGroupShareLock < ActiveRecord::Migration
+ def change
+ add_column :namespaces, :share_with_group_lock, :boolean, default: false
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 89e8c9e67b0..20dbb4f5a3e 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -568,14 +568,15 @@ ActiveRecord::Schema.define(version: 20160309140734) do
add_index "milestones", ["title"], name: "index_milestones_on_title", using: :btree
create_table "namespaces", force: :cascade do |t|
- t.string "name", null: false
- t.string "path", null: false
+ t.string "name", null: false
+ t.string "path", null: false
t.integer "owner_id"
t.datetime "created_at"
t.datetime "updated_at"
t.string "type"
- t.string "description", default: "", null: false
+ t.string "description", default: "", null: false
t.string "avatar"
+ t.boolean "share_with_group_lock", default: false
end
add_index "namespaces", ["created_at", "id"], name: "index_namespaces_on_created_at_and_id", using: :btree