refactor removing user from group

This is in preparation for removing a user and their lists when the group owner blocks them.
Remove the user via models.group
Remove the lists via models.list
This commit is contained in:
Hugh Rundle
2021-10-09 22:11:46 +11:00
parent 1bf5758e01
commit 9940abfd81
3 changed files with 34 additions and 8 deletions

View File

@ -163,6 +163,10 @@ def remove_member(request):
if not user:
return HttpResponseBadRequest()
# you can't be removed from your own group
if request.POST["user"]== group.user:
return HttpResponseBadRequest()
is_member = models.GroupMember.objects.filter(group=group, user=user).exists()
is_invited = models.GroupMemberInvitation.objects.filter(
group=group, user=user
@ -182,13 +186,8 @@ def remove_member(request):
if is_member:
try:
membership = models.GroupMember.objects.get(group=group, user=user)
membership.delete()
# remove this user's group-curated lists from the group
models.List.objects.filter(group=group, user=user).update(
group=None, curation="closed"
)
models.List.remove_from_group(group.user, user)
models.GroupMember.remove(group.user, user)
except IntegrityError:
pass