Advertisement
Guest User

Untitled

a guest
Feb 21st, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.61 KB | None | 0 0
  1. def login(request):
  2.     next_url = request.GET.get('next', '')
  3.  
  4.     if request.method == 'POST':
  5.         username = request.POST.get('username')
  6.         password = request.POST.get('password')
  7.  
  8.         # Esto es un parcho
  9.         try:
  10.             usuario = User.objects.get(username=username)
  11.             # ¿si son válidas sus credenciales?
  12.             if check_password(password, usuario.password):
  13.                 from django.contrib.sessions.models import Session
  14.                 sessions = Session.objects.all()
  15.                 for session in sessions:
  16.                     data = session.get_decoded()
  17.                     user_id = data.get('_auth_user_id', None)
  18.                     if user_id == usuario.id:
  19.                         session.delete()
  20.         except User.DoesNotExist:
  21.             pass
  22.         # fin del parcho
  23.  
  24.         user = auth.authenticate(username=username, password=password)
  25.  
  26.         if user and user.is_active:
  27.             auth.login(request, user)
  28.             if next_url:
  29.                 return HttpResponseRedirect(next_url)
  30.             return HttpResponseRedirect(reverse('nucleo:index'))
  31.         else:
  32.             return render_to_response('login.html',
  33.                                       {'error': "Credenciales incorrectas, intente nuevamente."},
  34.                                       context_instance=RequestContext(request))
  35.     elif request.user.is_authenticated():
  36.         return HttpResponseRedirect(reverse('nucleo:index'))
  37.     else:
  38.         args = {'next_url': next_url}
  39.         args.update(csrf(request))
  40.         return render_to_response('login.html', args)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement