Files
test-auth/app/api/views.py

41 lines
1.5 KiB
Python

from django.http import HttpResponse
from django.shortcuts import render_to_response, get_object_or_404, redirect
from django.template import RequestContext
from django.contrib.auth.decorators import login_required
from django.contrib import messages
from piston import forms
from piston.models import Token
@login_required
def oauth_callback_view(request, token):
return render_to_response('piston/callback_view.html', {'token': token }, context_instance=RequestContext(request))
@login_required
def oauth_auth_view(request, token, callback, params):
form = forms.OAuthAuthenticationForm(initial={
'oauth_token': token.key,
'oauth_callback': token.get_callback_url() or callback,
})
return render_to_response('piston/authorize_token.html',
{ 'form': form, 'consumer': token.consumer, 'user': token.user, 'request': request }, context_instance=RequestContext(request))
@login_required
def oauth_list_tokens(request):
# List all Access tokens
tokens = Token.objects.filter(token_type=Token.ACCESS, user=request.user)
return render_to_response('api/view_tokens.html', { 'tokens': tokens, 'request': request }, context_instance=RequestContext(request))
@login_required
def oauth_revoke_token(request, key):
token = get_object_or_404(Token, key=key)
if token.user == request.user:
token.delete()
messages.success(request, "Access for %s has been revoked" % token.consumer.name, fail_silently=True)
return redirect(oauth_list_tokens)