Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- """ Use modules.py for Messages sent to JavaScript Callback function """
- def login_success_response(user, next_to='/chat/'):
- rooms = ChatRoom.objects.all()
- ctx = {
- 'status': 'ok',
- 'user_status': 'Active',
- 'next_to': next_to,
- 'Message': MESSAGE['Login Successful'],
- 'user': {'id': user.id, 'name': user.fullname, 'username': user.username},
- 'html': render_to_string('chat.html',
- {'id': user.id, 'name': user.fullname,'username': user.username, 'rooms': rooms}
- )}
- return JsonResponse(ctx, content_type='application/json')
- def login_response(user=None, Message=''):
- if Message == 'Login Successful':
- return login_success_response (user)
- if Message == 'Account Inactive':
- ctx = {
- 'user': {'id': user.id, 'name': user.fullname, 'username': user.username},
- 'status': 'ok',
- 'user_status': 'Inactive',
- 'Message': MESSAGE['Account Inactive']
- }
- return JsonResponse (ctx, content_type='application/json')
- if Message == 'Incorrect Login':
- ctx = {
- 'status': 'ok',
- 'user_status': 'Invalid',
- 'Message': MESSAGE['Incorrect Login']
- }
- return JsonResponse (ctx, content_type='application/json')
- if Message == 'Already Logged in':
- ctx = {'Message': Message}
- return JsonResponse (ctx, content_type='application/json')
- else:
- ctx = {'status': 'ok', 'user_status': 'Something went wrong, Please try later.'}
- return JsonResponse (ctx)
- class LoginView(TemplateView):
- template_name = 'Login.html'
- def get(self, request, *args, **kwargs):
- if request.user.is_authenticated():
- return render_to_response('chat.html', context_instance=RequestContext(request))
- else:
- return render_to_string(self.template_name, context_instance=RequestContext(request))
- def post(self, request):
- username = request.POST.get('username')
- password = request.POST.get('password')
- if request.user.is_authenticated():
- return login_response(Message='Already Logged in')
- user = authenticate(username=username, password=password)
- if user is not None:
- if user.is_active:
- request.session.set_expiry(86400)
- login(request, user)
- return login_response(user, Message='Login Successful')
- else:
- return login_response(user, Message='Account Inactive')
- else:
- return login_response (Message='Incorrect Login')
- #User logout
- def logout(request):
- """
- Removes the authenticated user's ID from the request and flushes their
- session data.
- """
- # Dispatch the signal before the user is logged out so the receivers have a
- # chance to find out *who* logged out.
- if request.method == 'POST':
- user = getattr(request, 'user', None)
- if hasattr(user, 'is_authenticated') and not user.is_authenticated():
- user = None
- user_logged_out.send(sender=user.__class__, request=request, user=user)
- # remember language choice saved to session
- language = request.session.get(LANGUAGE_SESSION_KEY)
- request.session.flush()
- if language is not None:
- request.session[LANGUAGE_SESSION_KEY] = language
- if hasattr(request, 'user'):
- from django.contrib.auth.models import AnonymousUser
- request.user = AnonymousUser()
- ctx = {'status': 'ok', 'user_status': 'Logout', 'Message': MESSAGE['Logged out'], 'next': '/',
- 'html': render_to_string('Login.html')}
- return JsonResponse(ctx)
Add Comment
Please, Sign In to add comment