summaryrefslogtreecommitdiff
path: root/gitlab/v4/objects/members.py
diff options
context:
space:
mode:
authorJohn L. Villalovos <john@sodarock.com>2022-01-11 18:38:32 -0800
committerJohn L. Villalovos <john@sodarock.com>2022-01-11 18:38:32 -0800
commit88ac96d59c17eabb9d96f3e7a5907f235563e008 (patch)
tree0f2b30151575035ebd4c7e830f9239107ceee9cb /gitlab/v4/objects/members.py
parent4a000b6c41f0a7ef6121c62a4c598edc20973799 (diff)
downloadgitlab-jlvillal/all_objects.tar.gz
fix: members: use new *All objects for *AllManager managersjlvillal/all_objects
Change it so that: GroupMemberAllManager uses GroupMemberAll object ProjectMemberAllManager uses ProjectMemberAll object Create GroupMemberAll and ProjectMemberAll objects that do not support any Mixin type methods. Previously we were using GroupMember and ProjectMember which support the `save()` and `delete()` methods but those methods will not work with objects retrieved using the `/members/all/` API calls. `list()` API calls: [1] GET /groups/:id/members/all GET /projects/:id/members/all `get()` API calls: [2] GET /groups/:id/members/all/:user_id GET /projects/:id/members/all/:user_id Closes: #1825 [1] https://docs.gitlab.com/ee/api/members.html#list-all-members-of-a-group-or-project-including-inherited-and-invited-members [2] https://docs.gitlab.com/ee/api/members.html#get-a-member-of-a-group-or-project-including-inherited-and-invited-members
Diffstat (limited to 'gitlab/v4/objects/members.py')
-rw-r--r--gitlab/v4/objects/members.py20
1 files changed, 14 insertions, 6 deletions
diff --git a/gitlab/v4/objects/members.py b/gitlab/v4/objects/members.py
index 8fa2bb3..32c2ce5 100644
--- a/gitlab/v4/objects/members.py
+++ b/gitlab/v4/objects/members.py
@@ -70,15 +70,19 @@ class GroupBillableMemberMembershipManager(ListMixin, RESTManager):
_from_parent_attrs = {"group_id": "group_id", "user_id": "id"}
+class GroupMemberAll(RESTObject):
+ _short_print_attr = "username"
+
+
class GroupMemberAllManager(RetrieveMixin, RESTManager):
_path = "/groups/{group_id}/members/all"
- _obj_cls = GroupMember
+ _obj_cls = GroupMemberAll
_from_parent_attrs = {"group_id": "id"}
def get(
self, id: Union[str, int], lazy: bool = False, **kwargs: Any
- ) -> GroupMember:
- return cast(GroupMember, super().get(id=id, lazy=lazy, **kwargs))
+ ) -> GroupMemberAll:
+ return cast(GroupMemberAll, super().get(id=id, lazy=lazy, **kwargs))
class ProjectMember(SaveMixin, ObjectDeleteMixin, RESTObject):
@@ -103,12 +107,16 @@ class ProjectMemberManager(CRUDMixin, RESTManager):
return cast(ProjectMember, super().get(id=id, lazy=lazy, **kwargs))
+class ProjectMemberAll(RESTObject):
+ _short_print_attr = "username"
+
+
class ProjectMemberAllManager(RetrieveMixin, RESTManager):
_path = "/projects/{project_id}/members/all"
- _obj_cls = ProjectMember
+ _obj_cls = ProjectMemberAll
_from_parent_attrs = {"project_id": "id"}
def get(
self, id: Union[str, int], lazy: bool = False, **kwargs: Any
- ) -> ProjectMember:
- return cast(ProjectMember, super().get(id=id, lazy=lazy, **kwargs))
+ ) -> ProjectMemberAll:
+ return cast(ProjectMemberAll, super().get(id=id, lazy=lazy, **kwargs))