views.py 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  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. staff_detail = staff.objects.filter(staff_name=str(data['name'])).first()
  24. if staff_detail.is_lock == 1:
  25. err_ret = FBMsg.err_lock_staff()
  26. err_ret['data'] = data
  27. return JsonResponse(err_ret)
  28. else:
  29. data = {
  30. "name": data['name'],
  31. 'openid': staff_detail.openid,
  32. "user_id": staff_detail.id,
  33. "appid": staff_detail.appid,
  34. "staff_type" : staff_detail.staff_type,
  35. }
  36. ret = FBMsg.ret()
  37. ret['ip'] = ip
  38. ret['data'] = data
  39. auth.login(request, user)
  40. return JsonResponse(ret)
  41. else:
  42. err_ret = FBMsg.err_ret()
  43. err_ret['ip'] = ip
  44. err_ret['data'] = data
  45. return JsonResponse(err_ret)