fix: When adding members in bulk, existing members will be automatically passed in, do not affect the joining of other members #2351 (#2397)
This commit is contained in:
parent
218a247684
commit
e1f0f39987
@ -101,7 +101,8 @@ class UpdateTeamMemberPermissionSerializer(ApiMixin, serializers.Serializer):
|
|||||||
os.path.join(PROJECT_DIR, "apps", "setting", 'sql', 'check_member_permission_target_exists.sql')),
|
os.path.join(PROJECT_DIR, "apps", "setting", 'sql', 'check_member_permission_target_exists.sql')),
|
||||||
[json.dumps(permission_list), user_id, user_id])
|
[json.dumps(permission_list), user_id, user_id])
|
||||||
if illegal_target_id_list is not None and len(illegal_target_id_list) > 0:
|
if illegal_target_id_list is not None and len(illegal_target_id_list) > 0:
|
||||||
raise AppApiException(500, _('Non-existent application|knowledge base id[') + str(illegal_target_id_list) + ']')
|
raise AppApiException(500,
|
||||||
|
_('Non-existent application|knowledge base id[') + str(illegal_target_id_list) + ']')
|
||||||
|
|
||||||
def update_or_save(self, member_id: str):
|
def update_or_save(self, member_id: str):
|
||||||
team_member_permission_list = self.data.get("team_member_permission_list")
|
team_member_permission_list = self.data.get("team_member_permission_list")
|
||||||
@ -188,18 +189,20 @@ class TeamMemberSerializer(ApiMixin, serializers.Serializer):
|
|||||||
create_team_member_list = [
|
create_team_member_list = [
|
||||||
self.to_member_model(add_user_id, team_member_user_id_list, use_user_id_list, team_id) for add_user_id in
|
self.to_member_model(add_user_id, team_member_user_id_list, use_user_id_list, team_id) for add_user_id in
|
||||||
user_id_list]
|
user_id_list]
|
||||||
QuerySet(TeamMember).bulk_create(create_team_member_list) if len(create_team_member_list) > 0 else None
|
QuerySet(TeamMember).bulk_create(
|
||||||
|
[team_member for team_member in create_team_member_list if team_member is not None]) if len(
|
||||||
|
create_team_member_list) > 0 else None
|
||||||
return TeamMemberSerializer(
|
return TeamMemberSerializer(
|
||||||
data={'team_id': self.data.get("team_id")}).list_member()
|
data={'team_id': self.data.get("team_id")}).list_member()
|
||||||
|
|
||||||
def to_member_model(self, add_user_id, team_member_user_id_list, use_user_id_list, user_id):
|
def to_member_model(self, add_user_id, team_member_user_id_list, use_user_id_list, user_id):
|
||||||
if use_user_id_list.__contains__(add_user_id):
|
if use_user_id_list.__contains__(add_user_id):
|
||||||
if team_member_user_id_list.__contains__(add_user_id) or user_id == add_user_id:
|
if team_member_user_id_list.__contains__(add_user_id) or user_id == add_user_id:
|
||||||
raise AppApiException(500, _('The current members already exist in the team, do not add them again.'))
|
return None
|
||||||
else:
|
else:
|
||||||
return TeamMember(team_id=self.data.get("team_id"), user_id=add_user_id)
|
return TeamMember(team_id=self.data.get("team_id"), user_id=add_user_id)
|
||||||
else:
|
else:
|
||||||
raise AppApiException(500, _('User does not exist'))
|
return None
|
||||||
|
|
||||||
def add_member(self, username_or_email: str, with_valid=True):
|
def add_member(self, username_or_email: str, with_valid=True):
|
||||||
"""
|
"""
|
||||||
@ -318,4 +321,4 @@ class TeamMemberSerializer(ApiMixin, serializers.Serializer):
|
|||||||
in_=openapi.IN_PATH,
|
in_=openapi.IN_PATH,
|
||||||
type=openapi.TYPE_STRING,
|
type=openapi.TYPE_STRING,
|
||||||
required=True,
|
required=True,
|
||||||
description=_('member id')),]
|
description=_('member id')), ]
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user