Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import syslog, base64
- from django.contrib.auth import *
- from django.contrib.auth.models import User
- from django.db import IntegrityError
- from django.http import HttpResponseRedirect
- class BasicAuthenticationMiddleware(object):
- def process_request(self, request):
- try:
- user = getattr(request, 'user')
- redirect_to = request.REQUEST.get('next', '')
- headername = 'HTTP_AUTHORIZATION'
- if (user is None or not user.is_authenticated()) \
- and headername in request.META:
- auth = request.META[headername]
- auth = auth.split(' ')
- authdecode = base64.b64decode(auth[1])
- (username, password) = authdecode.split(':')
- user = authenticate(username = username, password = password)
- if user is not None and user.is_authenticated() and user.is_active:
- login(request, user)
- else:
- if user is None:
- # Create new user with some defaults.
- #~ user = User(username=username, email='%s@noreply.com'%username)
- user = User(username=username)
- user.set_password(password)
- user.is_active = True
- user.first_name = u''
- user.last_name = u''
- user.email = u''
- try:
- # Save the user into the DB.
- user.save()
- # Now automatically log the user in.
- #~ if user is not None and user.is_authenticated() and user.is_active:
- if user is not None:
- pass
- # Try to log the user in.
- #~ syslog.syslog("Logging user %s in automatically" % user.username)
- #~ login(request, user)
- return HttpResponseRedirect(redirect_to)
- except IntegrityError, e:
- # Likely the username already exists.
- syslog.syslog(str(e))
- except AttributeError, e:
- syslog.syslog(str(e))
- return None
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement