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

Commitb6b33b6

Browse files
committed
feat(users): Add approve and reject methods to User
As requested in#1604.
1 parentae7d3b0 commitb6b33b6

File tree

3 files changed

+50
-0
lines changed

3 files changed

+50
-0
lines changed

‎docs/gl_objects/users.rst‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,12 @@ List a user's starred projects
106106

107107
user.starred_projects.list()
108108

109+
If the GitLab instance has new user account approval enabled some users may
110+
have ``user.state == 'blocked_pending_approval'``. Administrators can approve
111+
and reject such users::
112+
113+
user.approve()
114+
109115
User custom attributes
110116
======================
111117

‎gitlab/exceptions.py‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -286,6 +286,14 @@ class GitlabUnfollowError(GitlabOperationError):
286286
pass
287287

288288

289+
classGitlabUserApproveError(GitlabOperationError):
290+
pass
291+
292+
293+
classGitlabUserRejectError(GitlabOperationError):
294+
pass
295+
296+
289297
# For an explanation of how these type-hints work see:
290298
# https://mypy.readthedocs.io/en/stable/generics.html#declaring-decorators
291299
#

‎gitlab/v4/objects/users.py‎

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -283,6 +283,42 @@ def activate(self, **kwargs: Any) -> Union[Dict[str, Any], requests.Response]:
283283
self._attrs["state"]="active"
284284
returnserver_data
285285

286+
@cli.register_custom_action("User")
287+
@exc.on_http_error(exc.GitlabUserApproveError)
288+
defapprove(self,**kwargs:Any)->Union[Dict[str,Any],requests.Response]:
289+
"""Approve a user creation request.
290+
291+
Args:
292+
**kwargs: Extra options to send to the server (e.g. sudo)
293+
294+
Raises:
295+
GitlabAuthenticationError: If authentication is not correct
296+
GitlabUserApproveError: If the user could not be activated
297+
298+
Returns:
299+
The new object data (*not* a RESTObject)
300+
"""
301+
path=f"/users/{self.encoded_id}/approve"
302+
returnself.manager.gitlab.http_post(path,**kwargs)
303+
304+
@cli.register_custom_action("User")
305+
@exc.on_http_error(exc.GitlabUserRejectError)
306+
defreject(self,**kwargs:Any)->Union[Dict[str,Any],requests.Response]:
307+
"""Reject a user creation request.
308+
309+
Args:
310+
**kwargs: Extra options to send to the server (e.g. sudo)
311+
312+
Raises:
313+
GitlabAuthenticationError: If authentication is not correct
314+
GitlabUserReject: If the user could not be rejected
315+
316+
Returns:
317+
The new object data (*not* a RESTObject)
318+
"""
319+
path=f"/users/{self.encoded_id}/reject"
320+
returnself.manager.gitlab.http_post(path,**kwargs)
321+
286322

287323
classUserManager(CRUDMixin,RESTManager):
288324
_path="/users"

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp