forked from mirrors/bookwyrm
b3cc9e5b75
Lists are changed to closed curation with no group.
44 lines
1.5 KiB
Python
44 lines
1.5 KiB
Python
""" views for actions you can take in the application """
|
|
from django.contrib.auth.decorators import login_required
|
|
from django.shortcuts import get_object_or_404, redirect
|
|
from django.template.response import TemplateResponse
|
|
from django.utils.decorators import method_decorator
|
|
from django.views import View
|
|
from django.views.decorators.http import require_POST
|
|
|
|
from bookwyrm import models
|
|
|
|
# pylint: disable= no-self-use
|
|
@method_decorator(login_required, name="dispatch")
|
|
class Block(View):
|
|
"""blocking users"""
|
|
|
|
def get(self, request):
|
|
"""list of blocked users"""
|
|
return TemplateResponse(request, "preferences/blocks.html")
|
|
|
|
def post(self, request, user_id):
|
|
"""block a user"""
|
|
to_block = get_object_or_404(models.User, id=user_id)
|
|
models.UserBlocks.objects.create(
|
|
user_subject=request.user, user_object=to_block
|
|
)
|
|
# remove the blocked users's lists from the groups
|
|
models.List.remove_from_group(request.user, to_block)
|
|
# remove the blocked user from all blocker's owned groups
|
|
models.GroupMember.remove(request.user, to_block)
|
|
return redirect("prefs-block")
|
|
|
|
|
|
@require_POST
|
|
@login_required
|
|
def unblock(request, user_id):
|
|
"""undo a block"""
|
|
to_unblock = get_object_or_404(models.User, id=user_id)
|
|
block = get_object_or_404(
|
|
models.UserBlocks,
|
|
user_subject=request.user,
|
|
user_object=to_unblock,
|
|
)
|
|
block.delete()
|
|
return redirect("prefs-block")
|