diff options
author | Nejc Habjan <hab.nejc@gmail.com> | 2020-09-07 23:37:54 +0200 |
---|---|---|
committer | Nejc Habjan <hab.nejc@gmail.com> | 2020-09-07 23:39:14 +0200 |
commit | e78e121575deb7b5ce490b2293caa290860fc3e9 (patch) | |
tree | 9824031089ecedcd672c5d9b9910bf2f2323e4fb /gitlab | |
parent | 49a0032f44a76cdcf17dd45da4b23e24a6b9572c (diff) | |
download | gitlab-feat/delete-user-identities.tar.gz |
feat(api): add support for user identity provider deletionfeat/delete-user-identities
Diffstat (limited to 'gitlab')
-rw-r--r-- | gitlab/tests/objects/test_users.py | 17 | ||||
-rw-r--r-- | gitlab/v4/objects/__init__.py | 12 |
2 files changed, 29 insertions, 0 deletions
diff --git a/gitlab/tests/objects/test_users.py b/gitlab/tests/objects/test_users.py index ec282cf..f84e877 100644 --- a/gitlab/tests/objects/test_users.py +++ b/gitlab/tests/objects/test_users.py @@ -95,6 +95,19 @@ def resp_get_user_status(): yield rsps +@pytest.fixture +def resp_delete_user_identity(no_content): + with responses.RequestsMock() as rsps: + rsps.add( + method=responses.DELETE, + url="http://localhost/api/v4/users/1/identities/test_provider", + json=no_content, + content_type="application/json", + status=204, + ) + yield rsps + + def test_get_user(gl, resp_get_user): user = gl.users.get(1) assert isinstance(user, User) @@ -118,3 +131,7 @@ def test_user_status(user, resp_get_user_status): def test_user_activate_deactivate(user, resp_activate): user.activate() user.deactivate() + + +def test_delete_user_identity(user, resp_delete_user_identity): + user.identityproviders.delete("test_provider") diff --git a/gitlab/v4/objects/__init__.py b/gitlab/v4/objects/__init__.py index f9a2c25..7dd8757 100644 --- a/gitlab/v4/objects/__init__.py +++ b/gitlab/v4/objects/__init__.py @@ -217,6 +217,17 @@ class UserStatusManager(GetWithoutIdMixin, RESTManager): _from_parent_attrs = {"user_id": "id"} +class UserIdentityProviderManager(DeleteMixin, RESTManager): + """Manager for user identities. + + This manager does not actually manage objects but enables + functionality for deletion of user identities by provider. + """ + + _path = "/users/%(user_id)s/identities" + _from_parent_attrs = {"user_id": "id"} + + class UserImpersonationToken(ObjectDeleteMixin, RESTObject): pass @@ -320,6 +331,7 @@ class User(SaveMixin, ObjectDeleteMixin, RESTObject): ("emails", "UserEmailManager"), ("events", "UserEventManager"), ("gpgkeys", "UserGPGKeyManager"), + ("identityproviders", "UserIdentityProviderManager"), ("impersonationtokens", "UserImpersonationTokenManager"), ("keys", "UserKeyManager"), ("memberships", "UserMembershipManager"), |