views.py 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. from django.http import JsonResponse
  2. from utils.fbmsg import FBMsg
  3. from django.contrib import auth
  4. from django.contrib.auth.models import User
  5. import json
  6. from userprofile.models import Users
  7. from staff.models import ListModel as staff
  8. def login(request, *args, **kwargs):
  9. post_data = json.loads(request.body.decode())
  10. data = {
  11. "name": post_data.get('name'),
  12. "password": post_data.get('password'),
  13. }
  14. ip = request.META.get('HTTP_X_FORWARDED_FOR') if request.META.get(
  15. 'HTTP_X_FORWARDED_FOR') else request.META.get('REMOTE_ADDR')
  16. if User.objects.filter(username=str(data['name'])).exists():
  17. user = auth.authenticate(username=str(data['name']), password=str(data['password']))
  18. if user is None:
  19. err_ret = FBMsg.err_ret()
  20. err_ret['data'] = data
  21. return JsonResponse(err_ret)
  22. else:
  23. auth.login(request, user)
  24. user_detail = Users.objects.filter(user_id=user.id).first()
  25. staff_id = staff.objects.filter(openid=user_detail.openid, staff_name=str(user_detail.name)).first().id
  26. data = {
  27. "name": data['name'],
  28. 'openid': user_detail.openid,
  29. "user_id": staff_id
  30. }
  31. ret = FBMsg.ret()
  32. ret['ip'] = ip
  33. ret['data'] = data
  34. return JsonResponse(ret)
  35. else:
  36. err_ret = FBMsg.err_ret()
  37. err_ret['ip'] = ip
  38. err_ret['data'] = data
  39. return JsonResponse(err_ret)