set_test_cookie has to be in a separate request/response cycle than test_ and delete_test_cookie. Add some comments about what's going on.
33 lines
1.1 KiB
Python
33 lines
1.1 KiB
Python
from django.contrib.auth.decorators import login_required
|
|
from django.shortcuts import redirect, render_to_response
|
|
|
|
|
|
def index(request):
|
|
'''Index page. Everyone starts here. If the user is logged in (that is, they
|
|
have a session id) return the follower_graph view. Otherwise, render the
|
|
index page.'''
|
|
if request.method == 'POST':
|
|
return redirect('login')
|
|
if 'sessionid' in request.session:
|
|
return follower_graph(request)
|
|
# Set a test cookie. When the user clicks the 'Login' button, test and make
|
|
# sure this cookie was set properly.
|
|
request.session.set_test_cookie()
|
|
return render_to_response('login.html')
|
|
|
|
|
|
def login(request):
|
|
'''Do a quick check to make sure cookies are enabled. If so, redirect to
|
|
GitHub so the user can login.'''
|
|
# Make sure the user can accept cookies.
|
|
if request.session.test_cookie_worked():
|
|
request.session.delete_test_cookie()
|
|
return redirect('/login/github/')
|
|
else:
|
|
# TODO: Render an error -- fix your damn cookies!
|
|
return render_to_response('login.html')
|
|
|
|
|
|
@login_required
|
|
def follower_graph(request):
|
|
return 'Hello!'
|