Allow removing followers and fix follow rejections
* adds the ability to remove a user from your followers list * fixes verbs.Reject to process reject activities for previously accepted follows in both directions fixes #2635
This commit is contained in:
parent
06568aab88
commit
2ba0e3d7ff
9 changed files with 120 additions and 21 deletions
|
@ -113,6 +113,7 @@ from .feed import DirectMessage, Feed, Replies, Status
|
|||
from .follow import (
|
||||
follow,
|
||||
unfollow,
|
||||
remove_follow,
|
||||
ostatus_follow_request,
|
||||
ostatus_follow_success,
|
||||
remote_follow,
|
||||
|
|
|
@ -69,6 +69,34 @@ def unfollow(request):
|
|||
return redirect("/")
|
||||
|
||||
|
||||
@login_required
|
||||
@require_POST
|
||||
def remove_follow(request):
|
||||
"""remove a previously approved follower without blocking them"""
|
||||
|
||||
username = request.POST["user"]
|
||||
to_remove = get_user_from_username(request.user, username)
|
||||
|
||||
try:
|
||||
models.UserFollows.objects.get(
|
||||
user_subject=to_remove, user_object=request.user
|
||||
).reject()
|
||||
except models.UserFollows.DoesNotExist:
|
||||
clear_cache(to_remove, request.user)
|
||||
|
||||
try:
|
||||
models.UserFollowRequest.objects.get(
|
||||
user_subject=to_remove, user_object=request.user
|
||||
).reject()
|
||||
except models.UserFollowRequest.DoesNotExist:
|
||||
clear_cache(to_remove, request.user)
|
||||
|
||||
if is_api_request(request):
|
||||
return HttpResponse()
|
||||
# this is handled with ajax so it shouldn't really matter
|
||||
return redirect("/")
|
||||
|
||||
|
||||
@login_required
|
||||
@require_POST
|
||||
def accept_follow_request(request):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue