diff --git a/labelbox/schema/project.py b/labelbox/schema/project.py index aa1c880cf..d7667d8ac 100644 --- a/labelbox/schema/project.py +++ b/labelbox/schema/project.py @@ -150,7 +150,7 @@ def members(self) -> PaginatedCollection: """ id_param = "projectId" query_str = """query ProjectMemberOverviewPyApi($%s: ID!) { - project(where: {id : $%s}) { id members(skip: %%d first: %%d){ id user { %s } role { id name } } + project(where: {id : $%s}) { id members(skip: %%d first: %%d){ id user { %s } role { id name } accessFrom } } }""" % (id_param, id_param, query.results_query_part(Entity.User)) return PaginatedCollection(self.client, query_str, @@ -1360,6 +1360,7 @@ def __check_data_rows_have_been_processed( class ProjectMember(DbObject): user = Relationship.ToOne("User", cache=True) role = Relationship.ToOne("Role", cache=True) + access_from = Field.String("access_from") class LabelingParameterOverride(DbObject): diff --git a/tests/integration/test_user_management.py b/tests/integration/test_user_management.py index 1a7aeee89..66f0fb659 100644 --- a/tests/integration/test_user_management.py +++ b/tests/integration/test_user_management.py @@ -60,6 +60,7 @@ def test_project_invite(client, organization, project_pack, queries): for proj_role in [project_role_1, project_role_2]]) project_members = project_1.members() + project_member = [ member for member in project_members if member.user().uid == client.get_user().uid @@ -68,6 +69,7 @@ def test_project_invite(client, organization, project_pack, queries): assert len(project_member) == 1 project_member = project_member[0] + assert project_member.access_from == 'ORGANIZATION' assert project_member.role().name.upper() == roles['ADMIN'].name.upper() queries.cancel_invite(client, invite.uid)