kpsul/kfet/open/views.py

33 lines
987 B
Python

from asgiref.sync import async_to_sync
from django.conf import settings
from django.contrib.auth.decorators import permission_required
from django.core.exceptions import PermissionDenied
from django.http import HttpResponse
from django.views.decorators.csrf import csrf_exempt
from django.views.decorators.http import require_POST
from .open import kfet_open
TRUE_STR = ["1", "True", "true"]
@csrf_exempt
@require_POST
def raw_open(request):
token = request.POST.get("token")
if token != settings.KFETOPEN_TOKEN:
raise PermissionDenied
raw_open = request.POST.get("raw_open") in TRUE_STR
kfet_open.raw_open = raw_open
async_to_sync(kfet_open.send_ws)()
return HttpResponse()
@permission_required("kfet.can_force_close", raise_exception=True)
@require_POST
def force_close(request):
force_close = request.POST.get("force_close") in TRUE_STR
kfet_open.force_close = force_close
async_to_sync(kfet_open.send_ws)()
return HttpResponse()