MCPcopy
hub / github.com/1Panel-dev/MaxKB / get_user_members

Method get_user_members

apps/users/serializers/user.py:582–620  ·  view source on GitHub ↗

获取工作空间成员列表 :param workspace_id: 工作空间ID :return: 成员列表

(self, workspace_id)

Source from the content-addressed store, hash-verified

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'))

Callers 1

getMethod · 0.80

Calls 2

get_modelMethod · 0.45
appendMethod · 0.45

Tested by

no test coverage detected