List of pending follow requests with accept/delete buttons on own profile.

This commit is contained in:
Adam Kelly
2020-03-13 14:34:40 +00:00
parent 1693473fd2
commit 05f5315b98
3 changed files with 57 additions and 0 deletions

View File

@ -163,3 +163,35 @@ def clear_notifications(request):
request.user.notification_set.filter(read=True).delete()
return redirect('/notifications')
@login_required
def accept_follow_request(request):
username = request.POST['user']
try:
requester = get_user_from_username(username)
except models.User.DoesNotExist:
return HttpResponseBadRequest()
follow_request = models.UserFollowRequest.objects.get(user_subject=requester, user_object=request.user)
# We don't keep a full copy of the follow request, but a minimal copy is good enough for now.
follow_activity = {'id': follow_request.relationship_id}
outgoing.handle_outgoing_accept(requester, request.user, follow_activity)
user_slug = requester.localname if requester.localname \
else requester.username
return redirect('/user/%s' % user_slug)
@login_required
def delete_follow_request(request):
username = request.POST['user']
try:
requester = get_user_from_username(username)
except models.User.DoesNotExist:
return HttpResponseBadRequest()
try:
follow_request = models.UserFollowRequest.objects.get(user_subject=requester, user_object=request.user)
follow_request.delete()
# Generate a Reject activity here.
except models.UserFollowRequest.DoesNotExist:
pass
return redirect('/user/%s' % request.user.localname)