X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/6b87b2b7014a0441f5f696a35127f12a89e48d2e..10dc1a5e84d23582a58ead2551ddf54a66b94496:/src/api/piston_patch.py diff --git a/src/api/piston_patch.py b/src/api/piston_patch.py deleted file mode 100644 index 6a80e15cd..000000000 --- a/src/api/piston_patch.py +++ /dev/null @@ -1,64 +0,0 @@ -# -*- coding: utf-8 -*- -# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later. -# Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information. -# -from oauthlib.oauth1 import AuthorizationEndpoint, OAuth1Error -from django.contrib.auth.decorators import login_required -from django import forms -from django.http import HttpResponse, HttpResponseRedirect -from django.shortcuts import render -from .request_validator import PistonRequestValidator -from .utils import oauthlib_request, oauthlib_response - - -class HttpResponseAppRedirect(HttpResponseRedirect): - allowed_schemes = HttpResponseRedirect.allowed_schemes + ['wolnelekturyapp'] - - -class OAuthAuthenticationForm(forms.Form): - oauth_token = forms.CharField(widget=forms.HiddenInput) - oauth_callback = forms.CharField(widget=forms.HiddenInput) # changed from URLField - too strict - # removed authorize_access - redundant - - -class OAuth1AuthorizationEndpoint(AuthorizationEndpoint): - def create_verifier(self, request, credentials): - verifier = super(OAuth1AuthorizationEndpoint, self).create_verifier(request, credentials) - return { - 'oauth_token': verifier['oauth_token'], - } - - -@login_required -def oauth_user_auth(request): - endpoint = OAuth1AuthorizationEndpoint(PistonRequestValidator()) - - if request.method == "GET": - # Why not just get oauth_token here? - # This is fairly straightforward, in't? - try: - realms, credentials = endpoint.get_realms_and_credentials( - **oauthlib_request(request)) - except OAuth1Error as e: - return HttpResponse(e.message, status=400) - callback = request.GET.get('oauth_callback') - - form = OAuthAuthenticationForm(initial={ - 'oauth_token': credentials['resource_owner_key'], - 'oauth_callback': callback, - }) - - return render(request, 'piston/authorize_token.html', {'form': form}) - - elif request.method == "POST": - try: - response = oauthlib_response( - endpoint.create_authorization_response( - credentials={"user": request.user}, - **oauthlib_request(request) - ) - ) - except OAuth1Error as e: - return HttpResponse(e.message, status=400) - else: - return response