Commit e75a086e by James Henstridge

Some changes for compatibility with current Django and Python-OpenID.

parent e14cb6d2
from django.db import models from django.db import models
class Nonce(models.Model): class Nonce(models.Model):
server_url = models.CharField(maxlength=255) server_url = models.CharField(max_length=2047)
timestamp = models.IntegerField() timestamp = models.IntegerField()
salt = models.CharField(max_length=40) salt = models.CharField(max_length=40)
def __unicode__(self): def __unicode__(self):
return u"Nonce: %s" % self.id return u"Nonce: %s, %s" % (self.server_url, self.salt)
class Association(models.Model): class Association(models.Model):
server_url = models.TextField(maxlength=2047) server_url = models.TextField(max_length=2047)
handle = models.CharField(maxlength=255) handle = models.CharField(max_length=255)
secret = models.TextField(maxlength=255) # Stored base64 encoded secret = models.TextField(max_length=255) # Stored base64 encoded
issued = models.IntegerField() issued = models.IntegerField()
lifetime = models.IntegerField() lifetime = models.IntegerField()
assoc_type = models.TextField(maxlength=64) assoc_type = models.TextField(max_length=64)
def __unicode__(self): def __unicode__(self):
return u"Association: %s, %s" % (self.server_url, self.handle) return u"Association: %s, %s" % (self.server_url, self.handle)
......
...@@ -4,12 +4,7 @@ from django.db.models.query import Q ...@@ -4,12 +4,7 @@ from django.db.models.query import Q
from django.conf import settings from django.conf import settings
import openid.store import openid.store
from openid.yadis import xri
# needed for some linux distributions like debian
try:
from openid.yadis import xri
except:
from yadis import xri
import time, base64, md5, operator import time, base64, md5, operator
......
...@@ -8,12 +8,7 @@ import md5, re, time, urllib ...@@ -8,12 +8,7 @@ import md5, re, time, urllib
from openid.consumer.consumer import Consumer, \ from openid.consumer.consumer import Consumer, \
SUCCESS, CANCEL, FAILURE, SETUP_NEEDED SUCCESS, CANCEL, FAILURE, SETUP_NEEDED
from openid.consumer.discover import DiscoveryFailure from openid.consumer.discover import DiscoveryFailure
from openid.yadis import xri
# needed for some linux distributions like debian
try:
from openid.yadis import xri
except:
from yadis import xriœ
from util import OpenID, DjangoOpenIDStore, from_openid_response from util import OpenID, DjangoOpenIDStore, from_openid_response
...@@ -109,16 +104,22 @@ def begin(request, sreg=None, extension_args=None, redirect_to=None, ...@@ -109,16 +104,22 @@ def begin(request, sreg=None, extension_args=None, redirect_to=None,
'form': form_signin, 'form': form_signin,
'action': request.path, 'action': request.path,
'logo': request.path + 'logo/', 'logo': request.path + 'logo/',
'openids': request.session['openids'], 'openids': request.session.get('openids', []),
}) })
def complete(request, on_success=None, on_failure=None): def complete(request, on_success=None, on_failure=None):
on_success = on_success or default_on_success on_success = on_success or default_on_success
on_failure = on_failure or default_on_failure on_failure = on_failure or default_on_failure
redirect_to = getattr(
settings, 'OPENID_REDIRECT_TO',
get_full_url(request).split('?')[0]
)
consumer = Consumer(request.session, DjangoOpenIDStore()) consumer = Consumer(request.session, DjangoOpenIDStore())
openid_response = consumer.complete(dict(request.GET.items())) openid_response = consumer.complete(dict(request.GET.items()), redirect_to)
if openid_response.status == SUCCESS: if openid_response.status == SUCCESS:
return on_success(request, openid_response.identity_url, openid_response) return on_success(request, openid_response.identity_url, openid_response)
elif openid_response.status == CANCEL: elif openid_response.status == CANCEL:
......
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