Commit 6f5d1282 by James Henstridge

Rename package to django_openid_auth, since it differs from the

original now.  Add an example of @login_required to the example app.
parent 7f7c6f49
...@@ -2,28 +2,11 @@ import base64 ...@@ -2,28 +2,11 @@ import base64
import time import time
from django.db.models.query import Q from django.db.models.query import Q
from openid.association import Association as OIDAssociation from openid.association import Association as OIDAssociation
from openid.store.interface import OpenIDStore from openid.store.interface import OpenIDStore
from openid.store.nonce import SKEW from openid.store.nonce import SKEW
from openid.yadis import xri
from models import Association, Nonce
class OpenID:
def __init__(self, openid, issued, attrs=None, sreg=None):
self.openid = openid
self.issued = issued
self.attrs = attrs or {}
self.sreg = sreg or {}
self.is_iname = (xri.identifierScheme(openid) == 'XRI')
def __repr__(self): from django_openid_auth.models import Association, Nonce
return '<OpenID: %s>' % self.openid
def __str__(self):
return self.openid
class DjangoOpenIDStore(OpenIDStore): class DjangoOpenIDStore(OpenIDStore):
...@@ -109,11 +92,3 @@ class DjangoOpenIDStore(OpenIDStore): ...@@ -109,11 +92,3 @@ class DjangoOpenIDStore(OpenIDStore):
if count: if count:
expired.delete() expired.delete()
return count return count
def from_openid_response(openid_response):
issued = int(time.time())
return OpenID(
openid_response.identity_url, issued, openid_response.signed_fields,
openid_response.extensionResponse('sreg', False)
)
from django.conf.urls.defaults import patterns from django.conf.urls.defaults import patterns
urlpatterns = patterns('django_openidconsumer.views', urlpatterns = patterns('django_openid_auth.views',
(r'^login$', 'login_begin'), (r'^login$', 'login_begin'),
(r'^complete$', 'login_complete'), (r'^complete$', 'login_complete'),
) )
...@@ -15,9 +15,9 @@ from openid.consumer.discover import DiscoveryFailure ...@@ -15,9 +15,9 @@ from openid.consumer.discover import DiscoveryFailure
from openid.extensions import sreg from openid.extensions import sreg
from auth import openid_authenticate from django_openid_auth.auth import openid_authenticate
from util import DjangoOpenIDStore from django_openid_auth.forms import OpenIDLoginForm
from forms import OpenIDLoginForm from django_openid_auth.store import DjangoOpenIDStore
next_url_re = re.compile('^/[-\w/]+$') next_url_re = re.compile('^/[-\w/]+$')
......
...@@ -75,11 +75,20 @@ INSTALLED_APPS = ( ...@@ -75,11 +75,20 @@ INSTALLED_APPS = (
'django.contrib.auth', 'django.contrib.auth',
'django.contrib.contenttypes', 'django.contrib.contenttypes',
'django.contrib.sessions', 'django.contrib.sessions',
'django_openidconsumer', 'django_openid_auth',
) )
# Should users be created when new OpenIDs are used to log in?
OPENID_CREATE_USERS = True OPENID_CREATE_USERS = True
# When logging in again, should we overwrite user details based on
# data received via Simple Registration?
OPENID_UPDATE_DETAILS_FROM_SREG = True OPENID_UPDATE_DETAILS_FROM_SREG = True
# If set, always use this as the identity URL rather than asking the
# user. This only makes sense if it is a server URL.
OPENID_SSO_SERVER_URL = 'https://login.launchpad.net/' OPENID_SSO_SERVER_URL = 'https://login.launchpad.net/'
# Tell django.contrib.auth to use the OpenID signin URLs.
LOGIN_URL = '/openid/login'
LOGIN_REDIRECT_URL = '/' LOGIN_REDIRECT_URL = '/'
...@@ -3,8 +3,8 @@ import views ...@@ -3,8 +3,8 @@ import views
urlpatterns = patterns('', urlpatterns = patterns('',
(r'^$', views.index), (r'^$', views.index),
(r'^openid/login$', 'django_openidconsumer.views.login_begin'), (r'^openid/login$', 'django_openid_auth.views.login_begin'),
(r'^openid/login/complete$', 'django_openidconsumer.views.login_complete'), (r'^openid/login/complete$', 'django_openid_auth.views.login_complete'),
(r'^openid/logout$', 'django.contrib.auth.views.logout'), (r'^openid/logout$', 'django.contrib.auth.views.logout'),
(r'^next-works/$', views.next_works), (r'^private/$', views.require_authentication),
) )
from django.contrib.auth.decorators import login_required
from django.http import HttpResponse from django.http import HttpResponse
from django.utils.html import escape from django.utils.html import escape
def index(request): def index(request):
s = ['<p>'] s = ['<p>']
if request.user.is_authenticated(): if request.user.is_authenticated():
...@@ -13,7 +14,15 @@ def index(request): ...@@ -13,7 +14,15 @@ def index(request):
s.append('<a href="/openid/login">Sign in with OpenID</a>') s.append('<a href="/openid/login">Sign in with OpenID</a>')
s.append('</p>') s.append('</p>')
s.append('<p><a href="/private">This requires authentication</a></p>')
return HttpResponse('\n'.join(s)) return HttpResponse('\n'.join(s))
def next_works(request): def next_works(request):
return HttpResponse('?next= bit works. <a href="/">Home</a>') return HttpResponse('?next= bit works. <a href="/">Home</a>')
@login_required
def require_authentication(request):
return HttpResponse('This page requires authentication')
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment