X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/fdd62169ba22c4c1be2f2306b5339eadd74ffb6d..8132fc186eb0c5fd02c86828c3a4735754296d02:/apps/apiclient/views.py diff --git a/apps/apiclient/views.py b/apps/apiclient/views.py index f8515904..239682a5 100644 --- a/apps/apiclient/views.py +++ b/apps/apiclient/views.py @@ -7,23 +7,23 @@ import oauth2 from apiclient.models import OAuthConnection from apiclient import wl_consumer -from apiclient.settings import (WL_REQUEST_TOKEN_URL, WL_ACCESS_TOKEN_URL, - WL_AUTHORIZE_URL) +from apiclient.settings import WL_REQUEST_TOKEN_URL, WL_ACCESS_TOKEN_URL, WL_AUTHORIZE_URL +from apiclient.settings import BETA_REQUEST_TOKEN_URL, BETA_ACCESS_TOKEN_URL, BETA_AUTHORIZE_URL @login_required -def oauth(request): +def oauth(request, beta=False): if wl_consumer is None: return HttpResponse("OAuth consumer not configured.") client = oauth2.Client(wl_consumer) - resp, content = client.request(WL_REQUEST_TOKEN_URL) + resp, content = client.request(WL_REQUEST_TOKEN_URL if not beta else BETA_REQUEST_TOKEN_URL) if resp['status'] != '200': raise Exception("Invalid response %s." % resp['status']) request_token = dict(cgi.parse_qsl(content)) - conn = OAuthConnection.get(request.user) + conn = OAuthConnection.get(request.user, beta) # this might reset existing auth! conn.access = False conn.token = request_token['oauth_token'] @@ -31,25 +31,25 @@ def oauth(request): conn.save() url = "%s?oauth_token=%s&oauth_callback=%s" % ( - WL_AUTHORIZE_URL, + WL_AUTHORIZE_URL if not beta else BETA_AUTHORIZE_URL, request_token['oauth_token'], - request.build_absolute_uri(reverse("users_oauth_callback")), + request.build_absolute_uri(reverse("apiclient_oauth_callback" if not beta else "apiclient_beta_callback")), ) return HttpResponseRedirect(url) @login_required -def oauth_callback(request): +def oauth_callback(request, beta=False): if wl_consumer is None: return HttpResponse("OAuth consumer not configured.") oauth_verifier = request.GET.get('oauth_verifier') - conn = OAuthConnection.get(request.user) + conn = OAuthConnection.get(request.user, beta) token = oauth2.Token(conn.token, conn.token_secret) token.set_verifier(oauth_verifier) client = oauth2.Client(wl_consumer, token) - resp, content = client.request(WL_ACCESS_TOKEN_URL, method="POST") + resp, content = client.request(WL_ACCESS_TOKEN_URL if not beta else BETA_ACCESS_TOKEN_URL, method="POST") access_token = dict(cgi.parse_qsl(content)) conn.access = True