Guest User

Untitled

a guest
Dec 17th, 2017
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.81 KB | None | 0 0
  1. """ Use modules.py for Messages sent to JavaScript Callback function """
  2.  
  3. def login_success_response(user, next_to='/chat/'):
  4. rooms = ChatRoom.objects.all()
  5. ctx = {
  6. 'status': 'ok',
  7. 'user_status': 'Active',
  8. 'next_to': next_to,
  9. 'Message': MESSAGE['Login Successful'],
  10. 'user': {'id': user.id, 'name': user.fullname, 'username': user.username},
  11. 'html': render_to_string('chat.html',
  12. {'id': user.id, 'name': user.fullname,'username': user.username, 'rooms': rooms}
  13. )}
  14. return JsonResponse(ctx, content_type='application/json')
  15.  
  16.  
  17. def login_response(user=None, Message=''):
  18. if Message == 'Login Successful':
  19. return login_success_response (user)
  20.  
  21. if Message == 'Account Inactive':
  22. ctx = {
  23. 'user': {'id': user.id, 'name': user.fullname, 'username': user.username},
  24. 'status': 'ok',
  25. 'user_status': 'Inactive',
  26. 'Message': MESSAGE['Account Inactive']
  27. }
  28. return JsonResponse (ctx, content_type='application/json')
  29.  
  30. if Message == 'Incorrect Login':
  31. ctx = {
  32. 'status': 'ok',
  33. 'user_status': 'Invalid',
  34. 'Message': MESSAGE['Incorrect Login']
  35. }
  36. return JsonResponse (ctx, content_type='application/json')
  37.  
  38. if Message == 'Already Logged in':
  39. ctx = {'Message': Message}
  40. return JsonResponse (ctx, content_type='application/json')
  41.  
  42. else:
  43. ctx = {'status': 'ok', 'user_status': 'Something went wrong, Please try later.'}
  44. return JsonResponse (ctx)
  45.  
  46.  
  47. class LoginView(TemplateView):
  48. template_name = 'Login.html'
  49.  
  50. def get(self, request, *args, **kwargs):
  51. if request.user.is_authenticated():
  52. return render_to_response('chat.html', context_instance=RequestContext(request))
  53. else:
  54. return render_to_string(self.template_name, context_instance=RequestContext(request))
  55.  
  56. def post(self, request):
  57. username = request.POST.get('username')
  58. password = request.POST.get('password')
  59. if request.user.is_authenticated():
  60. return login_response(Message='Already Logged in')
  61. user = authenticate(username=username, password=password)
  62. if user is not None:
  63. if user.is_active:
  64. request.session.set_expiry(86400)
  65. login(request, user)
  66.  
  67. return login_response(user, Message='Login Successful')
  68. else:
  69. return login_response(user, Message='Account Inactive')
  70. else:
  71. return login_response (Message='Incorrect Login')
  72.  
  73. #User logout
  74. def logout(request):
  75. """
  76. Removes the authenticated user's ID from the request and flushes their
  77. session data.
  78. """
  79. # Dispatch the signal before the user is logged out so the receivers have a
  80. # chance to find out *who* logged out.
  81.  
  82. if request.method == 'POST':
  83. user = getattr(request, 'user', None)
  84. if hasattr(user, 'is_authenticated') and not user.is_authenticated():
  85. user = None
  86. user_logged_out.send(sender=user.__class__, request=request, user=user)
  87.  
  88. # remember language choice saved to session
  89. language = request.session.get(LANGUAGE_SESSION_KEY)
  90.  
  91. request.session.flush()
  92.  
  93. if language is not None:
  94. request.session[LANGUAGE_SESSION_KEY] = language
  95.  
  96. if hasattr(request, 'user'):
  97. from django.contrib.auth.models import AnonymousUser
  98. request.user = AnonymousUser()
  99. ctx = {'status': 'ok', 'user_status': 'Logout', 'Message': MESSAGE['Logged out'], 'next': '/',
  100. 'html': render_to_string('Login.html')}
  101. return JsonResponse(ctx)
Add Comment
Please, Sign In to add comment