From c19248a2850f8c75a2ce87883f4dee3145edfb4e Mon Sep 17 00:00:00 2001 From: Marin Jankovski Date: Fri, 12 Dec 2014 13:52:36 +0100 Subject: [PATCH 1/9] Add group membership lock field to namespaces. --- db/migrate/20141212124604_add_group_membership_lock.rb | 5 +++++ db/schema.rb | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 db/migrate/20141212124604_add_group_membership_lock.rb diff --git a/db/migrate/20141212124604_add_group_membership_lock.rb b/db/migrate/20141212124604_add_group_membership_lock.rb new file mode 100644 index 0000000000..5dfd0835cb --- /dev/null +++ b/db/migrate/20141212124604_add_group_membership_lock.rb @@ -0,0 +1,5 @@ +class AddGroupMembershipLock < ActiveRecord::Migration + def change + add_column :namespaces, :membership_lock, :boolean, default: false + end +end diff --git a/db/schema.rb b/db/schema.rb index 95bab864c0..c55a188887 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: 20141205134006) do +ActiveRecord::Schema.define(version: 20141212124604) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -265,6 +265,7 @@ ActiveRecord::Schema.define(version: 20141205134006) do t.string "ldap_cn" t.integer "ldap_access" t.string "avatar" + t.boolean "membership_lock", default: false end add_index "namespaces", ["name"], name: "index_namespaces_on_name", using: :btree From 9c99c4fe5c0593bd1e674e5fb229498170ba749a Mon Sep 17 00:00:00 2001 From: Marin Jankovski Date: Fri, 12 Dec 2014 14:24:17 +0100 Subject: [PATCH 2/9] Show different controls on project member page depending on if the membership lock is in place. --- app/helpers/projects_helper.rb | 8 ++++++++ .../team_members/_team_member.html.haml | 19 ++++++++++--------- .../projects/team_members/index.html.haml | 18 ++++++++++++------ app/views/shared/_group_form.html.haml | 7 +++++++ 4 files changed, 37 insertions(+), 15 deletions(-) diff --git a/app/helpers/projects_helper.rb b/app/helpers/projects_helper.rb index fb5470d98e..768c8e2250 100644 --- a/app/helpers/projects_helper.rb +++ b/app/helpers/projects_helper.rb @@ -279,4 +279,12 @@ module ProjectsHelper result.password = '*****' if result.password.present? result end + + def membership_locked? + if @project.group && @project.group.membership_lock + true + else + false + end + end end diff --git a/app/views/projects/team_members/_team_member.html.haml b/app/views/projects/team_members/_team_member.html.haml index 7a9c0939ba..2d8f80b862 100644 --- a/app/views/projects/team_members/_team_member.html.haml +++ b/app/views/projects/team_members/_team_member.html.haml @@ -1,14 +1,15 @@ - user = member.user %li{id: dom_id(user), class: "team_member_row access-#{member.human_access.downcase}"} - .pull-right - - if current_user_can_admin_project - - unless @project.personal? && user == current_user - .pull-left - = form_for(member, as: :project_member, url: project_team_member_path(@project, member.user)) do |f| - = f.select :access_level, options_for_select(ProjectMember.access_roles, member.access_level), {}, class: "trigger-submit" -   - = link_to project_team_member_path(@project, user), data: { confirm: remove_from_project_team_message(@project, user)}, method: :delete, class: "btn-tiny btn btn-remove", title: 'Remove user from team' do - %i.fa.fa-minus.fa-inverse + - unless membership_locked? + .pull-right + - if current_user_can_admin_project + - unless @project.personal? && user == current_user + .pull-left + = form_for(member, as: :project_member, url: project_team_member_path(@project, member.user)) do |f| + = f.select :access_level, options_for_select(ProjectMember.access_roles, member.access_level), {}, class: "trigger-submit" +   + = link_to project_team_member_path(@project, user), data: { confirm: remove_from_project_team_message(@project, user)}, method: :delete, class: "btn-tiny btn btn-remove", title: 'Remove user from team' do + %i.fa.fa-minus.fa-inverse = image_tag avatar_icon(user.email, 32), class: "avatar s32" %p %strong= user.name diff --git a/app/views/projects/team_members/index.html.haml b/app/views/projects/team_members/index.html.haml index 37105c8676..8a5641a022 100644 --- a/app/views/projects/team_members/index.html.haml +++ b/app/views/projects/team_members/index.html.haml @@ -1,16 +1,22 @@ %h3.page-title Users with access to this project - - if can? current_user, :admin_team_member, @project - %span.pull-right - = link_to new_project_team_member_path(@project), class: "btn btn-new btn-grouped", title: "New project member" do - New project member - = link_to import_project_team_members_path(@project), class: "btn btn-grouped", title: "Import members from another project" do - Import members + - unless membership_locked? + - if can?(current_user, :admin_team_member, @project) + %span.pull-right + = link_to new_project_team_member_path(@project), class: "btn btn-new btn-grouped", title: "New project member" do + New project member + = link_to import_project_team_members_path(@project), class: "btn btn-grouped", title: "Import members from another project" do + Import members + %p.light Read more about project permissions %strong= link_to "here", help_page_path("permissions", "permissions"), class: "vlink" + - if membership_locked? + %span.pull-right + Adding new user to membership is disabled by a group setting + = render "team", members: @project_members - if @group = render "group_members" diff --git a/app/views/shared/_group_form.html.haml b/app/views/shared/_group_form.html.haml index 93294e4250..4df2fa65b1 100644 --- a/app/views/shared/_group_form.html.haml +++ b/app/views/shared/_group_form.html.haml @@ -10,3 +10,10 @@ .col-sm-10 = f.text_area :description, maxlength: 250, class: 'form-control js-gfm-input', rows: 4 +.form-group + = f.label :name, class: 'control-label' do + Member lock + .col-sm-10 + .checkbox + = f.check_box :membership_lock + %span.descr Prevent adding new members to project membership within this group From c115d08055d989e17af09f4b3b1ef96ea719921e Mon Sep 17 00:00:00 2001 From: Marin Jankovski Date: Fri, 12 Dec 2014 14:25:58 +0100 Subject: [PATCH 3/9] Prevent adding users to project team if group membership lock is in place. --- app/models/project_team.rb | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/models/project_team.rb b/app/models/project_team.rb index fc017b1240..00a30a256c 100644 --- a/app/models/project_team.rb +++ b/app/models/project_team.rb @@ -12,6 +12,7 @@ class ProjectTeam # @team << [@users, :master] # def <<(args) + return false if group_member_lock users = args.first if users.respond_to?(:each) @@ -218,4 +219,8 @@ class ProjectTeam def group project.group end + + def group_member_lock + group && group.membership_lock + end end From 2948a2afbc00f067f2983bb06ec01780c4b17f0e Mon Sep 17 00:00:00 2001 From: Marin Jankovski Date: Mon, 15 Dec 2014 10:32:53 +0100 Subject: [PATCH 4/9] Add membership_lock to allowed params. Change settings page warning. --- app/controllers/groups_controller.rb | 2 +- app/views/projects/team_members/index.html.haml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/controllers/groups_controller.rb b/app/controllers/groups_controller.rb index df298ee1e5..8251ee9240 100644 --- a/app/controllers/groups_controller.rb +++ b/app/controllers/groups_controller.rb @@ -163,6 +163,6 @@ class GroupsController < ApplicationController end def group_params - params.require(:group).permit(:name, :description, :path, :avatar) + params.require(:group).permit(:name, :description, :path, :avatar, :membership_lock) end end diff --git a/app/views/projects/team_members/index.html.haml b/app/views/projects/team_members/index.html.haml index 8a5641a022..52ab9f58ed 100644 --- a/app/views/projects/team_members/index.html.haml +++ b/app/views/projects/team_members/index.html.haml @@ -15,7 +15,7 @@ %strong= link_to "here", help_page_path("permissions", "permissions"), class: "vlink" - if membership_locked? %span.pull-right - Adding new user to membership is disabled by a group setting + Managing user access is disabled at group level = render "team", members: @project_members - if @group From 3d4a3fc4d1b56b4816621fe3f8921b0fa3fa4e86 Mon Sep 17 00:00:00 2001 From: Marin Jankovski Date: Mon, 15 Dec 2014 10:44:34 +0100 Subject: [PATCH 5/9] Add feature spec for group membership locking. --- features/groups_management.feature | 22 +++++++++ features/steps/groups_management.rb | 65 +++++++++++++++++++++++++ features/steps/shared/authentication.rb | 4 ++ features/steps/shared/group.rb | 4 ++ 4 files changed, 95 insertions(+) create mode 100644 features/groups_management.feature create mode 100644 features/steps/groups_management.rb diff --git a/features/groups_management.feature b/features/groups_management.feature new file mode 100644 index 0000000000..35f471fac6 --- /dev/null +++ b/features/groups_management.feature @@ -0,0 +1,22 @@ +Feature: Groups Management + Background: + Given "Pete Peters" is owner of group "Sourcing" + And "Open" is in group "Sourcing" + And "Mary Jane" has master access for project "Open" + + Scenario: Project master can add members before lock + Given I sign in as "Mary Jane" + And I go to "Open" project members page + Then I can control user membership + When Group membership lock is enabled + And I reload "Open" project members page + Then I cannot control user membership from project page + And I logout + + Scenario: Group owner lock membership controls + Given I sign in as "Pete Peters" + And I go to group settings page + And I enable membership lock + And I go to project settings + Then I cannot control user membership from project page + And I logout diff --git a/features/steps/groups_management.rb b/features/steps/groups_management.rb new file mode 100644 index 0000000000..e1bd84c443 --- /dev/null +++ b/features/steps/groups_management.rb @@ -0,0 +1,65 @@ +class Spinach::Features::GroupsManagement < Spinach::FeatureSteps + include SharedAuthentication + include SharedPaths + include SharedGroup + include SharedUser + include Select2Helper + + step '"Open" is in group "Sourcing"' do + @group = Group.find_by(name: "Sourcing") + @project ||= create(:project, name: "Open", namespace: @group) + + end + + step '"Mary Jane" has master access for project "Open"' do + @user = User.find_by(name: "Mary Jane") || create(:user, name: "Mary Jane") + @project = Project.find_by(name: "Open") + @project.team << [@user, :master] + end + + step "Group membership lock is enabled" do + @group = Group.find_by(name: "Sourcing") + @group.update_attributes(membership_lock: true) + end + + step 'I go to "Open" project members page' do + click_link 'Sourcing / Open' + click_link 'Settings' + click_link 'Members' + end + + step 'I can control user membership' do + page.should have_link 'New project member' + page.should have_link 'Import members' + page.should have_selector '#project_member_access_level', text: 'Master' + end + + step 'I reload "Open" project members page' do + click_link 'Members' + end + + step 'I go to group settings page' do + click_link 'sidebar-groups-tab' + click_link 'Sourcing' + click_link 'Settings' + end + + step 'I enable membership lock' do + check 'group_membership_lock' + click_button 'Save group' + end + + step 'I go to project settings' do + @project = Project.find_by(name: "Open") + click_link 'Projects' + + link = "/#{@project.path_with_namespace}/team" + find(:xpath, "//a[@href=\"#{link}\"]").click + end + + step 'I cannot control user membership from project page' do + page.should_not have_link 'New project member' + page.should_not have_link 'Import members' + page.should_not have_selector '#project_member_access_level', text: 'Master' + end +end diff --git a/features/steps/shared/authentication.rb b/features/steps/shared/authentication.rb index ac8a3df6bb..22d44add04 100644 --- a/features/steps/shared/authentication.rb +++ b/features/steps/shared/authentication.rb @@ -20,6 +20,10 @@ module SharedAuthentication login_with(user_exists("Mary Jane")) end + step 'I sign in as "Pete Peters"' do + login_with(user_exists("Pete Peters")) + end + step 'I should be redirected to sign in page' do current_path.should == new_user_session_path end diff --git a/features/steps/shared/group.rb b/features/steps/shared/group.rb index 1b225dd61a..4f9a77283b 100644 --- a/features/steps/shared/group.rb +++ b/features/steps/shared/group.rb @@ -21,6 +21,10 @@ module SharedGroup is_member_of("Mary Jane", "Guest", Gitlab::Access::GUEST) end + step '"Pete Peters" is owner of group "Sourcing"' do + is_member_of("Pete Peters", "Sourcing", Gitlab::Access::OWNER) + end + step 'I should see group "TestGroup"' do page.should have_content "TestGroup" end From 6c656c759fbf78ea462742139569cc9757b139ac Mon Sep 17 00:00:00 2001 From: Marin Jankovski Date: Mon, 15 Dec 2014 13:25:03 +0100 Subject: [PATCH 6/9] Move the checkbox to a better position. --- app/views/groups/edit.html.haml | 9 +++++++++ app/views/shared/_group_form.html.haml | 7 ------- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/app/views/groups/edit.html.haml b/app/views/groups/edit.html.haml index 0eda33eeb5..436211f402 100644 --- a/app/views/groups/edit.html.haml +++ b/app/views/groups/edit.html.haml @@ -27,6 +27,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-small remove-avatar" + .form-group + %hr + = f.label :name, class: 'control-label' do + Member lock + .col-sm-10 + .checkbox + = f.check_box :membership_lock + %span.descr Prevent adding new members to project membership within this group + .form-actions = f.submit 'Save group', class: "btn btn-save" diff --git a/app/views/shared/_group_form.html.haml b/app/views/shared/_group_form.html.haml index 4df2fa65b1..93294e4250 100644 --- a/app/views/shared/_group_form.html.haml +++ b/app/views/shared/_group_form.html.haml @@ -10,10 +10,3 @@ .col-sm-10 = f.text_area :description, maxlength: 250, class: 'form-control js-gfm-input', rows: 4 -.form-group - = f.label :name, class: 'control-label' do - Member lock - .col-sm-10 - .checkbox - = f.check_box :membership_lock - %span.descr Prevent adding new members to project membership within this group From 3257f8fcce8016a5420bd4f1699e1de2e2de5be3 Mon Sep 17 00:00:00 2001 From: Marin Jankovski Date: Mon, 15 Dec 2014 13:25:31 +0100 Subject: [PATCH 7/9] Do not allow adding users via api if member lock is enabled. --- lib/api/project_members.rb | 4 ++++ spec/requests/api/project_members_spec.rb | 12 ++++++++++++ 2 files changed, 16 insertions(+) diff --git a/lib/api/project_members.rb b/lib/api/project_members.rb index 1595ed0bc3..7d83c1bebd 100644 --- a/lib/api/project_members.rb +++ b/lib/api/project_members.rb @@ -53,6 +53,10 @@ module API authorize! :admin_project, user_project required_attributes! [:user_id, :access_level] + if user_project.group && user_project.group.membership_lock + not_allowed! + end + # either the user is already a team member or a new one team_member = user_project.team_member_by_id(params[:user_id]) if team_member.nil? diff --git a/spec/requests/api/project_members_spec.rb b/spec/requests/api/project_members_spec.rb index 836f21f3e0..fe35f17a02 100644 --- a/spec/requests/api/project_members_spec.rb +++ b/spec/requests/api/project_members_spec.rb @@ -90,6 +90,18 @@ describe API::API, api: true do post api("/projects/#{project.id}/members", user), user_id: user2.id, access_level: 1234 response.status.should == 422 end + + context 'project in a group' do + before do + project2 = create(:project, group: create(:group, membership_lock: true)) + project2.group.add_owner(user) + post api("/projects/#{project2.id}/members", user), user_id: user2.id, access_level: ProjectMember::MASTER + end + + it 'should return a 405 method not allowed error when group membership lock is enabled' do + response.status.should == 405 + end + end end describe "PUT /projects/:id/members/:user_id" do From 4ec4bd29c6328864e81d253074b3d15ca8e715c5 Mon Sep 17 00:00:00 2001 From: Marin Jankovski Date: Mon, 15 Dec 2014 14:55:55 +0100 Subject: [PATCH 8/9] Add to member lock to changelog and documentation. --- CHANGELOG-EE | 1 + doc/workflow/groups.md | 13 +++++++++++++ doc/workflow/groups/membership_lock.png | Bin 0 -> 111795 bytes 3 files changed, 14 insertions(+) create mode 100644 doc/workflow/groups/membership_lock.png diff --git a/CHANGELOG-EE b/CHANGELOG-EE index 0e5d9983b8..e845fbda60 100644 --- a/CHANGELOG-EE +++ b/CHANGELOG-EE @@ -2,6 +2,7 @@ v 7.6.0 - Added Audit events related to membership changes for groups and projects - Added option to attempt a rebase before merging merge request - Dont show LDAP groups settings if LDAP disabled + - Added member lock for groups to disallow membership changes on project level v 7.5.3 - Only set up Sidetiq from a Sidekiq server process (fixes Redis::InheritedError) diff --git a/doc/workflow/groups.md b/doc/workflow/groups.md index 52bf611dc5..a859370cc0 100644 --- a/doc/workflow/groups.md +++ b/doc/workflow/groups.md @@ -69,3 +69,16 @@ gitlab_rails['gitlab_default_can_create_group'] = false # For installations from source, uncomment the 'default_can_create_group' # line in /home/git/gitlab/config/gitlab.yml ``` + +## Lock project membership to members of the group + +In GitLab Enterprise Edition it is possible to lock membership in project to the level of members in group. + +This allows group owner to lock down any new project membership to any of the projects within the group allowing tighter control over +project membership. + +To enable this feature, navigate to group settings page, select `Member lock` and `Save group`. + +![Checkbox for membership lock](groups/membership_lock.png) + +This will disable the option for all users who previously had permissions to operate project memberships. No new users can be added, removed or their access level changed. Furthermore, any request to change project permission level for users through API will not be possible. diff --git a/doc/workflow/groups/membership_lock.png b/doc/workflow/groups/membership_lock.png new file mode 100644 index 0000000000000000000000000000000000000000..e32fe2881e88bd09b3ed194c707a6fc5d2934150 GIT binary patch literal 111795 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%0A@agiPPy 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 QXoI<}rmb44Z2A1Z0EOJy2LJ#7 literal 0 HcmV?d00001 From 0e9f0a1cdda39e80ba7d71f1f22d0b34d541c813 Mon Sep 17 00:00:00 2001 From: Marin Jankovski Date: Mon, 15 Dec 2014 16:56:09 +0100 Subject: [PATCH 9/9] Limit to only additions and block at project team level. --- CHANGELOG-EE | 2 +- app/models/project_team.rb | 2 +- .../team_members/_team_member.html.haml | 21 ++++++++----------- .../projects/team_members/index.html.haml | 2 +- doc/workflow/groups.md | 5 ++--- features/steps/groups_management.rb | 2 +- 6 files changed, 15 insertions(+), 19 deletions(-) diff --git a/CHANGELOG-EE b/CHANGELOG-EE index e845fbda60..23b5a46037 100644 --- a/CHANGELOG-EE +++ b/CHANGELOG-EE @@ -2,7 +2,7 @@ v 7.6.0 - Added Audit events related to membership changes for groups and projects - Added option to attempt a rebase before merging merge request - Dont show LDAP groups settings if LDAP disabled - - Added member lock for groups to disallow membership changes on project level + - Added member lock for groups to disallow membership additions on project level v 7.5.3 - Only set up Sidetiq from a Sidekiq server process (fixes Redis::InheritedError) diff --git a/app/models/project_team.rb b/app/models/project_team.rb index 00a30a256c..a8cdeb6836 100644 --- a/app/models/project_team.rb +++ b/app/models/project_team.rb @@ -12,7 +12,6 @@ class ProjectTeam # @team << [@users, :master] # def <<(args) - return false if group_member_lock users = args.first if users.respond_to?(:each) @@ -53,6 +52,7 @@ class ProjectTeam end def add_users_ids(user_ids, access) + return false if group_member_lock ProjectMember.add_users_into_projects( [project.id], user_ids, diff --git a/app/views/projects/team_members/_team_member.html.haml b/app/views/projects/team_members/_team_member.html.haml index 2d8f80b862..6925f9cfb3 100644 --- a/app/views/projects/team_members/_team_member.html.haml +++ b/app/views/projects/team_members/_team_member.html.haml @@ -1,18 +1,15 @@ - user = member.user %li{id: dom_id(user), class: "team_member_row access-#{member.human_access.downcase}"} - - unless membership_locked? - .pull-right - - if current_user_can_admin_project - - unless @project.personal? && user == current_user - .pull-left - = form_for(member, as: :project_member, url: project_team_member_path(@project, member.user)) do |f| - = f.select :access_level, options_for_select(ProjectMember.access_roles, member.access_level), {}, class: "trigger-submit" -   - = link_to project_team_member_path(@project, user), data: { confirm: remove_from_project_team_message(@project, user)}, method: :delete, class: "btn-tiny btn btn-remove", title: 'Remove user from team' do - %i.fa.fa-minus.fa-inverse + .pull-right + - if current_user_can_admin_project + - unless @project.personal? && user == current_user + .pull-left + = form_for(member, as: :project_member, url: project_team_member_path(@project, member.user)) do |f| + = f.select :access_level, options_for_select(ProjectMember.access_roles, member.access_level), {}, class: "trigger-submit" +   + = link_to project_team_member_path(@project, user), data: { confirm: remove_from_project_team_message(@project, user)}, method: :delete, class: "btn-tiny btn btn-remove", title: 'Remove user from team' do + %i.fa.fa-minus.fa-inverse = image_tag avatar_icon(user.email, 32), class: "avatar s32" %p %strong= user.name %span.cgray= user.username - - diff --git a/app/views/projects/team_members/index.html.haml b/app/views/projects/team_members/index.html.haml index 52ab9f58ed..08e15b63fe 100644 --- a/app/views/projects/team_members/index.html.haml +++ b/app/views/projects/team_members/index.html.haml @@ -15,7 +15,7 @@ %strong= link_to "here", help_page_path("permissions", "permissions"), class: "vlink" - if membership_locked? %span.pull-right - Managing user access is disabled at group level + Adding new users is disabled at group level = render "team", members: @project_members - if @group diff --git a/doc/workflow/groups.md b/doc/workflow/groups.md index a859370cc0..e8bc36ba18 100644 --- a/doc/workflow/groups.md +++ b/doc/workflow/groups.md @@ -74,11 +74,10 @@ gitlab_rails['gitlab_default_can_create_group'] = false In GitLab Enterprise Edition it is possible to lock membership in project to the level of members in group. -This allows group owner to lock down any new project membership to any of the projects within the group allowing tighter control over -project membership. +This allows group owner to lock down any new project membership to any of the projects within the group allowing tighter control over project membership. To enable this feature, navigate to group settings page, select `Member lock` and `Save group`. ![Checkbox for membership lock](groups/membership_lock.png) -This will disable the option for all users who previously had permissions to operate project memberships. No new users can be added, removed or their access level changed. Furthermore, any request to change project permission level for users through API will not be possible. +This will disable the option for all users who previously had permissions to operate project memberships so no new users can be added. Furthermore, any request to add new user to project through API will not be possible. diff --git a/features/steps/groups_management.rb b/features/steps/groups_management.rb index e1bd84c443..42efd8e7e8 100644 --- a/features/steps/groups_management.rb +++ b/features/steps/groups_management.rb @@ -60,6 +60,6 @@ class Spinach::Features::GroupsManagement < Spinach::FeatureSteps step 'I cannot control user membership from project page' do page.should_not have_link 'New project member' page.should_not have_link 'Import members' - page.should_not have_selector '#project_member_access_level', text: 'Master' + page.should have_selector '#project_member_access_level', text: 'Master' end end