diff --git a/server/mergin/sync/models.py b/server/mergin/sync/models.py index 9574a69d..e2b3a2a6 100644 --- a/server/mergin/sync/models.py +++ b/server/mergin/sync/models.py @@ -296,6 +296,7 @@ def get_member(self, user_id: int) -> Optional[ProjectMember]: from .permissions import ProjectPermissions member = self._member(user_id) + profile = UserProfile.query.filter_by(user_id=member.user.id).first() if member: return ProjectMember( id=user_id, @@ -304,6 +305,7 @@ def get_member(self, user_id: int) -> Optional[ProjectMember]: project_role=ProjectRole(member.role), workspace_role=self.workspace.get_user_role(member.user), role=ProjectPermissions.get_user_project_role(self, member.user), + name=profile.name() if profile else None, ) def members_by_role(self, role: ProjectRole) -> List[int]: @@ -364,6 +366,7 @@ class ProjectMember: workspace_role: WorkspaceRole project_role: Optional[ProjectRole] role: ProjectRole + name: Optional[str] = None @dataclass diff --git a/server/mergin/sync/public_api_v2_controller.py b/server/mergin/sync/public_api_v2_controller.py index 1bfd8738..0f5cdb6e 100644 --- a/server/mergin/sync/public_api_v2_controller.py +++ b/server/mergin/sync/public_api_v2_controller.py @@ -19,7 +19,7 @@ from .schemas_v2 import ProjectSchema as ProjectSchemaV2 from ..app import db from ..auth import auth_required -from ..auth.models import User +from ..auth.models import User, UserProfile from .errors import ( AnotherUploadRunning, BigChunkError, @@ -105,6 +105,7 @@ def get_project_collaborators(id): project_members = [] for user, workspace_role in project.workspace.members(): project_role = project.get_role(user.id) + profile = UserProfile.query.filter_by(user_id=user.id).first() if workspace_role != WorkspaceRole.GUEST or project_role is not None: project_members.append( ProjectMember( @@ -114,6 +115,7 @@ def get_project_collaborators(id): project_role=project_role, workspace_role=workspace_role, role=ProjectPermissions.get_user_project_role(project, user), + name=profile.name() if profile else None, ) ) diff --git a/server/mergin/sync/schemas.py b/server/mergin/sync/schemas.py index 8d1df050..bfc18885 100644 --- a/server/mergin/sync/schemas.py +++ b/server/mergin/sync/schemas.py @@ -405,6 +405,7 @@ class ProjectMemberSchema(Schema): project_role = fields.Enum(enum=ProjectRole, by_value=True) workspace_role = fields.Enum(enum=WorkspaceRole, by_value=True) role = fields.Enum(enum=ProjectRole, by_value=True) + name = fields.String(allow_none=True) class UploadChunkSchema(Schema): diff --git a/web-app/packages/lib/src/modules/project/components/ProjectMembersTable.vue b/web-app/packages/lib/src/modules/project/components/ProjectMembersTable.vue index e7e01062..15c0b133 100644 --- a/web-app/packages/lib/src/modules/project/components/ProjectMembersTable.vue +++ b/web-app/packages/lib/src/modules/project/components/ProjectMembersTable.vue @@ -47,7 +47,7 @@ SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-MerginMaps-Commercial ]" >