On approving an IndieAuth request, actually generate an auth code and redirect

This commit is contained in:
Danielle McLean 2017-10-29 16:16:27 +11:00
parent 221d548e4a
commit 8b4a14ffa3
Signed by untrusted user: 00dani
GPG key ID: 5A5D2D1AFF12EEC5
4 changed files with 68 additions and 3 deletions

View file

@ -3,12 +3,14 @@ import mf2py
from annoying.decorators import render_to
from django.contrib.auth.decorators import login_required
from django.http import HttpResponseForbidden, HttpResponseBadRequest
from django.http import JsonResponse
from django.shortcuts import redirect
from django.utils.decorators import method_decorator
from django.views.generic import TemplateView
from django.views.decorators.http import require_POST
from lemoncurry import breadcrumbs, utils
from urllib.parse import urljoin, urlunparse, urlparse
from urllib.parse import urlencode, urljoin, urlunparse, urlparse
from ..models import IndieAuthCode
breadcrumbs.add('lemonauth:indie', label='indieauth', parent='home:index')
@ -70,4 +72,10 @@ class IndieView(TemplateView):
@login_required
@require_POST
def approve(request):
return JsonResponse(request.POST)
post = request.POST.dict()
code = IndieAuthCode.objects.create_from_dict(post)
code.save()
params = {'code': code.code, 'me': code.me}
if 'state' in post:
params['state'] = post['state']
return redirect(code.redirect_uri + '?' + urlencode(params))