From 1b23aa0cd9efc32668e77cc27463e5d000b601f0 Mon Sep 17 00:00:00 2001 From: Katrin Leinweber Date: Tue, 1 Jul 2025 11:09:08 +0200 Subject: [PATCH] Enable setting override flag of LDAP-sync'ed users --- lib/gitlab/client/groups.rb | 11 +++++++++++ spec/fixtures/group_member_override.json | 1 + spec/gitlab/client/groups_spec.rb | 15 +++++++++++++++ 3 files changed, 27 insertions(+) create mode 100644 spec/fixtures/group_member_override.json diff --git a/lib/gitlab/client/groups.rb b/lib/gitlab/client/groups.rb index 8c900e3a5..54d69c6c8 100644 --- a/lib/gitlab/client/groups.rb +++ b/lib/gitlab/client/groups.rb @@ -161,6 +161,17 @@ def add_group_member(team_id, user_id, access_level, options = {}) post("/groups/#{url_encode team_id}/members", body: body) end + # Set LDAP override flag for a member of a group + # + # @example + # Gitlab.override_group_member(1, 2) + # + # @param [Integer] team_id The group id into which LDAP syncs the user. + # @param [Integer] user_id The user id of the user. + def override_group_member(team_id, user_id) + post("/groups/#{url_encode team_id}/members/#{user_id}/override") + end + # Edit a user of a group. # # @example diff --git a/spec/fixtures/group_member_override.json b/spec/fixtures/group_member_override.json new file mode 100644 index 000000000..b83347885 --- /dev/null +++ b/spec/fixtures/group_member_override.json @@ -0,0 +1 @@ +{"id":1,"username":"jsmith","email":"jsmith@local.host","name":"John Smith","state":"active","created_at":"2013-09-04T18:15:30Z","override":true} diff --git a/spec/gitlab/client/groups_spec.rb b/spec/gitlab/client/groups_spec.rb index a8a25aa26..5ab69f87d 100644 --- a/spec/gitlab/client/groups_spec.rb +++ b/spec/gitlab/client/groups_spec.rb @@ -262,6 +262,21 @@ end end + describe '.override_group_member' do + before do + stub_post('/groups/3/members/1/override', 'group_member_override') + @member = Gitlab.override_group_member(3, 1) + end + + it 'gets the correct resource' do + expect(a_post('/groups/3/members/1/override')).to have_been_made + end + + it 'returns the override flag for the member' do + expect(@member.override).to be(true) + end + end + describe '.remove_group_member' do before do stub_delete('/groups/3/members/1', 'group_member_delete')