Advertisement
Guest User

Untitled

a guest
Sep 8th, 2017
456
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.42 KB | None | 0 0
  1. import syslog, base64
  2.  
  3. from django.contrib.auth import *
  4. from django.contrib.auth.models import User
  5. from django.db import IntegrityError
  6. from django.http import HttpResponseRedirect
  7.  
  8. class BasicAuthenticationMiddleware(object):
  9.  
  10.     def process_request(self, request):
  11.        
  12.         try:
  13.             user = getattr(request, 'user')
  14.             redirect_to = request.REQUEST.get('next', '')
  15.  
  16.             headername = 'HTTP_AUTHORIZATION'
  17.            
  18.             if (user is None or not user.is_authenticated()) \
  19.                    and headername in request.META:
  20.                 auth = request.META[headername]
  21.                 auth = auth.split(' ')
  22.  
  23.                 authdecode = base64.b64decode(auth[1])
  24.                 (username, password) = authdecode.split(':')
  25.  
  26.                 user = authenticate(username = username, password = password)
  27.                
  28.                 if user is not None and user.is_authenticated() and user.is_active:
  29.                     login(request, user)
  30.                 else:
  31.                     if user is None:
  32.                         # Create new user with some defaults.
  33.                         #~ user = User(username=username, email='%s@noreply.com'%username)
  34.                         user = User(username=username)
  35.                         user.set_password(password)
  36.                         user.is_active = True
  37.                         user.first_name = u''
  38.                         user.last_name = u''
  39.                         user.email = u''
  40.  
  41.                         try:
  42.                             # Save the user into the DB.
  43.                             user.save()
  44.  
  45.                             # Now automatically log the user in.
  46.                             #~ if user is not None and user.is_authenticated() and user.is_active:
  47.                             if user is not None:
  48.                                 pass
  49.                                 # Try to log the user in.
  50.                                 #~ syslog.syslog("Logging user %s in automatically" % user.username)
  51.                                 #~ login(request, user)
  52.                                 return HttpResponseRedirect(redirect_to)
  53.  
  54.                         except IntegrityError, e:
  55.                             # Likely the username already exists.
  56.                             syslog.syslog(str(e))
  57.  
  58.         except AttributeError, e:
  59.             syslog.syslog(str(e))
  60.  
  61.         return None
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement