summaryrefslogtreecommitdiff
path: root/gitlab/v4/objects.py
diff options
context:
space:
mode:
authorRoger Meier <r.meier@siemens.com>2019-10-25 11:29:58 +0200
committerGitHub <noreply@github.com>2019-10-25 11:29:58 +0200
commit912e16b95611715b4df3fae019687f7616af51c1 (patch)
treedc0b664dd13b17f9584971f2c730ad5b0b55ad84 /gitlab/v4/objects.py
parentac2266b66553cec11740bd5246e23d649606b5ef (diff)
parent32ad66921e408f6553b9d60b6b4833ed3180f549 (diff)
downloadgitlab-912e16b95611715b4df3fae019687f7616af51c1.tar.gz
Merge pull request #923 from python-gitlab/feat/users-activate-deactivate
feat: add users activate, deactivate functionality
Diffstat (limited to 'gitlab/v4/objects.py')
-rw-r--r--gitlab/v4/objects.py42
1 files changed, 42 insertions, 0 deletions
diff --git a/gitlab/v4/objects.py b/gitlab/v4/objects.py
index 474cc2b..fcac301 100644
--- a/gitlab/v4/objects.py
+++ b/gitlab/v4/objects.py
@@ -340,6 +340,48 @@ class User(SaveMixin, ObjectDeleteMixin, RESTObject):
self._attrs["state"] = "active"
return server_data
+ @cli.register_custom_action("User")
+ @exc.on_http_error(exc.GitlabDeactivateError)
+ def deactivate(self, **kwargs):
+ """Deactivate the user.
+
+ Args:
+ **kwargs: Extra options to send to the server (e.g. sudo)
+
+ Raises:
+ GitlabAuthenticationError: If authentication is not correct
+ GitlabDeactivateError: If the user could not be deactivated
+
+ Returns:
+ bool: Whether the user status has been changed
+ """
+ path = "/users/%s/deactivate" % self.id
+ server_data = self.manager.gitlab.http_post(path, **kwargs)
+ if server_data:
+ self._attrs["state"] = "deactivated"
+ return server_data
+
+ @cli.register_custom_action("User")
+ @exc.on_http_error(exc.GitlabActivateError)
+ def activate(self, **kwargs):
+ """Activate the user.
+
+ Args:
+ **kwargs: Extra options to send to the server (e.g. sudo)
+
+ Raises:
+ GitlabAuthenticationError: If authentication is not correct
+ GitlabActivateError: If the user could not be activated
+
+ Returns:
+ bool: Whether the user status has been changed
+ """
+ path = "/users/%s/activate" % self.id
+ server_data = self.manager.gitlab.http_post(path, **kwargs)
+ if server_data:
+ self._attrs["state"] = "active"
+ return server_data
+
class UserManager(CRUDMixin, RESTManager):
_path = "/users"