Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commite78e121

Browse files
committed
feat(api): add support for user identity provider deletion
1 parent49a0032 commite78e121

File tree

4 files changed

+53
-0
lines changed

4 files changed

+53
-0
lines changed

‎docs/gl_objects/users.rst‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,10 @@ Set an external identity for a user::
8080
user.extern_uid = '3'
8181
user.save()
8282

83+
Delete an external identity by provider name::
84+
85+
user.identityproviders.delete('oauth2_generic')
86+
8387
User custom attributes
8488
======================
8589

‎gitlab/tests/objects/test_users.py‎

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,19 @@ def resp_get_user_status():
9595
yieldrsps
9696

9797

98+
@pytest.fixture
99+
defresp_delete_user_identity(no_content):
100+
withresponses.RequestsMock()asrsps:
101+
rsps.add(
102+
method=responses.DELETE,
103+
url="http://localhost/api/v4/users/1/identities/test_provider",
104+
json=no_content,
105+
content_type="application/json",
106+
status=204,
107+
)
108+
yieldrsps
109+
110+
98111
deftest_get_user(gl,resp_get_user):
99112
user=gl.users.get(1)
100113
assertisinstance(user,User)
@@ -118,3 +131,7 @@ def test_user_status(user, resp_get_user_status):
118131
deftest_user_activate_deactivate(user,resp_activate):
119132
user.activate()
120133
user.deactivate()
134+
135+
136+
deftest_delete_user_identity(user,resp_delete_user_identity):
137+
user.identityproviders.delete("test_provider")

‎gitlab/v4/objects/__init__.py‎

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,17 @@ class UserStatusManager(GetWithoutIdMixin, RESTManager):
217217
_from_parent_attrs= {"user_id":"id"}
218218

219219

220+
classUserIdentityProviderManager(DeleteMixin,RESTManager):
221+
"""Manager for user identities.
222+
223+
This manager does not actually manage objects but enables
224+
functionality for deletion of user identities by provider.
225+
"""
226+
227+
_path="/users/%(user_id)s/identities"
228+
_from_parent_attrs= {"user_id":"id"}
229+
230+
220231
classUserImpersonationToken(ObjectDeleteMixin,RESTObject):
221232
pass
222233

@@ -320,6 +331,7 @@ class User(SaveMixin, ObjectDeleteMixin, RESTObject):
320331
("emails","UserEmailManager"),
321332
("events","UserEventManager"),
322333
("gpgkeys","UserGPGKeyManager"),
334+
("identityproviders","UserIdentityProviderManager"),
323335
("impersonationtokens","UserImpersonationTokenManager"),
324336
("keys","UserKeyManager"),
325337
("memberships","UserMembershipManager"),

‎tools/functional/api/test_users.py‎

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
"""
2+
GitLab API:
3+
https://docs.gitlab.com/ee/api/users.html
4+
https://docs.gitlab.com/ee/api/users.html#delete-authentication-identity-from-user
5+
"""
6+
7+
8+
deftest_user_identities(gl,user):
9+
provider="test_provider"
10+
11+
user.provider=provider
12+
user.extern_uid="1"
13+
user.save()
14+
15+
assertproviderin [item["provider"]foriteminuser.identities]
16+
17+
user.identityproviders.delete(provider)
18+
user=gl.users.get(user.id)
19+
20+
assertprovidernotin [item["provider"]foriteminuser.identities]

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp