summaryrefslogtreecommitdiff
path: root/gitlab
diff options
context:
space:
mode:
authorNejc Habjan <hab.nejc@gmail.com>2020-09-07 23:37:54 +0200
committerNejc Habjan <hab.nejc@gmail.com>2020-09-07 23:39:14 +0200
commite78e121575deb7b5ce490b2293caa290860fc3e9 (patch)
tree9824031089ecedcd672c5d9b9910bf2f2323e4fb /gitlab
parent49a0032f44a76cdcf17dd45da4b23e24a6b9572c (diff)
downloadgitlab-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.py17
-rw-r--r--gitlab/v4/objects/__init__.py12
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"),