-
Notifications
You must be signed in to change notification settings - Fork 8
Closed
Labels
Description
Docs issue: https://github.com/rstudio/connect/issues/28176
Proposal that can be done today:
user = client.users.get("USER_GUID_HERE")
user_guid = user["guid"]
user_groups = user.groups.find()
# For every group
for group in client.groups.find():
# Get group members
group_guid = group["guid"]
response = client.get("v1/groups/{group_guid}/members")
members_raw = response.json()
# For each member in the group
for member_raw in members_raw:
if member_raw["guid"] == user_guid:
user_groups.append(group)
break
user_groupsProposal if Group.members is added:
## By implementing `Group.members` property...
for group in client.groups.find():
group_members: list[User] = group.members.find()
for group_member in group_members:
if group_member['guid'] == user_guid:
user_groups.append(group)
breakProposal if User.groups property and Group.members property are added
## By implementing `User.groups` property...
user_groups = user.groups.find()
# ...where
@property
def user_groups(self) -> UserGroups:
...
class UserGroups(Resource):
def find() -> list[User]:
user_groups: list[Group] = []
for group in self.params.client.groups.find():
group_members = group.members.find()
for group_member in group_members:
if group_member['guid'] == user_guid:
user_groups.append(group)
break
return user_groups