获取工作空间成员列表 :param workspace_id: 工作空间ID :return: 成员列表
(self, workspace_id)
| 580 | return list(users) |
| 581 | |
| 582 | def get_user_members(self, workspace_id): |
| 583 | """ |
| 584 | 获取工作空间成员列表 |
| 585 | :param workspace_id: 工作空间ID |
| 586 | :return: 成员列表 |
| 587 | """ |
| 588 | role_model = DatabaseModelManage.get_model("role_model") |
| 589 | user_role_relation_model = DatabaseModelManage.get_model("workspace_user_role_mapping") |
| 590 | |
| 591 | if user_role_relation_model and role_model: |
| 592 | user_role_relations = ( |
| 593 | user_role_relation_model.objects |
| 594 | .filter(workspace_id=workspace_id, role__type='USER') |
| 595 | .select_related('role', 'user') |
| 596 | ) |
| 597 | user_dict = {} |
| 598 | for relation in user_role_relations: |
| 599 | user_id = relation.user.id |
| 600 | if user_id not in user_dict: |
| 601 | user_dict[user_id] = { |
| 602 | 'id': user_id, |
| 603 | 'nick_name': relation.user.nick_name, |
| 604 | 'email': relation.user.email, |
| 605 | 'roles': [relation.role.role_name] |
| 606 | } |
| 607 | else: |
| 608 | user_dict[user_id]['roles'].append(relation.role.role_name) |
| 609 | |
| 610 | # 将字典值转换为列表形式 |
| 611 | return list(user_dict.values()) |
| 612 | user_list = User.objects.exclude(role=RoleConstants.ADMIN.name) |
| 613 | return [ |
| 614 | { |
| 615 | 'id': user.id, |
| 616 | 'nick_name': user.nick_name, |
| 617 | 'email': user.email, |
| 618 | 'roles': [RoleConstants.USER.name] |
| 619 | } for user in user_list |
| 620 | ] |
| 621 | |
| 622 | class BatchDelete(serializers.Serializer): |
| 623 | ids = serializers.ListField(required=True, label=_('User IDs')) |