views.py 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. from django.http import JsonResponse
  2. from userprofile.models import Users
  3. from utils.fbmsg import FBMsg
  4. from utils.md5 import Md5
  5. from django.views.decorators.csrf import csrf_exempt
  6. from django.utils.decorators import method_decorator
  7. from django.contrib import auth
  8. from django.utils import timezone
  9. from django.contrib.auth.models import User
  10. from staff.models import ListModel as staff
  11. import json, random, os
  12. from django.conf import settings
  13. @method_decorator(csrf_exempt, name='dispatch')
  14. # 免除视图类的dispatch方法的CSRF验证
  15. def register(request, *args, **kwargs):
  16. post_data = json.loads(request.body.decode())
  17. data = {
  18. "name": post_data.get('name'),
  19. "password1": post_data.get('password1'),
  20. "password2": post_data.get('password2')
  21. }
  22. ip = request.META.get('HTTP_X_FORWARDED_FOR') if request.META.get(
  23. 'HTTP_X_FORWARDED_FOR') else request.META.get('REMOTE_ADDR')
  24. # 检查是否存在开发者用户且未被删除
  25. if Users.objects.filter(name=str(data['name']), developer=1, is_delete=0).exists():
  26. err_user_same = FBMsg.err_user_same()
  27. err_user_same['ip'] = ip
  28. err_user_same['data'] = data['name']
  29. return JsonResponse(err_user_same)
  30. else:
  31. if data.get('password1') is None:
  32. err_password1_empty = FBMsg.err_password1_empty()
  33. err_password1_empty['ip'] = ip
  34. err_password1_empty['data'] = data['name']
  35. return JsonResponse(err_password1_empty)
  36. else:
  37. if str(data['password1']) == '':
  38. err_password1_empty = FBMsg.err_password1_empty()
  39. err_password1_empty['ip'] = ip
  40. err_password1_empty['data'] = data['name']
  41. return JsonResponse(err_password1_empty)
  42. else:
  43. if data.get('password2') is None:
  44. err_password2_empty = FBMsg.err_password2_empty()
  45. err_password2_empty['ip'] = ip
  46. err_password2_empty['data'] = data['name']
  47. return JsonResponse(err_password2_empty)
  48. else:
  49. if str(data['password2']) == '':
  50. err_password2_empty = FBMsg.err_password2_empty()
  51. err_password2_empty['ip'] = ip
  52. err_password2_empty['data'] = data['name']
  53. return JsonResponse(err_password2_empty)
  54. else:
  55. if str(data['password1']) != str(data['password2']):
  56. err_password_not_same = FBMsg.err_password_not_same()
  57. err_password_not_same['ip'] = ip
  58. err_password_not_same['data'] = data['name']
  59. return JsonResponse(err_password_not_same)
  60. else:
  61. transaction_code = Md5.md5(data['name'])
  62. user = User.objects.create_user(username=str(data['name']), password=str(data['password1']))
  63. Users.objects.create(user_id=user.id, name=str(data['name']),
  64. openid=transaction_code, appid=transaction_code,
  65. t_code=Md5.md5(str(timezone.now())),
  66. developer=1, ip=ip)
  67. auth.login(request, user)
  68. check_code = random.randint(1000, 9999)
  69. staff.objects.create(staff_name=str(data['name']),
  70. staff_type='查看员',
  71. check_code=check_code,
  72. openid=transaction_code,
  73. appid=transaction_code,
  74. is_look=1,)
  75. if Users.objects.filter(name='PDA1', developer=1, is_delete=0).exists():
  76. print("PDA1已存在")
  77. else:
  78. staff.objects.create(staff_name='PDA1',
  79. staff_type='Inbound',
  80. check_code="123456",
  81. openid="PDA1",
  82. appid="PDA1",
  83. is_look=1,)
  84. User.objects.create_user(username='PDA1',password=str(123456))
  85. Users.objects.create(user_id=user.id, name='PDA1',
  86. openid="PDA1", appid="PDA1",
  87. t_code=Md5.md5(str(timezone.now())),
  88. developer=1, ip=ip)
  89. if Users.objects.filter(name='PDA2', developer=1, is_delete=0).exists():
  90. print("PDA2已存在")
  91. else:
  92. staff.objects.create(staff_name='PDA2',
  93. staff_type='Inbound',
  94. check_code="123456",
  95. openid="PDA2",
  96. appid="PDA2",
  97. is_look=1,)
  98. User.objects.create_user(username='PDA2',password=str(123456))
  99. Users.objects.create(user_id=user.id, name='PDA2',
  100. openid="PDA2", appid="PDA2",
  101. t_code=Md5.md5(str(timezone.now())),
  102. developer=1, ip=ip)
  103. user_id = staff.objects.filter(openid=transaction_code, staff_name=str(data['name']),
  104. staff_type='查看员', check_code=check_code).first().id
  105. folder = os.path.exists(os.path.join(settings.BASE_DIR, 'media/' + transaction_code))
  106. if not folder:
  107. os.makedirs(os.path.join(settings.BASE_DIR, 'media/' + transaction_code))
  108. os.makedirs(os.path.join(settings.BASE_DIR, 'media/' + transaction_code + "/win32"))
  109. os.makedirs(os.path.join(settings.BASE_DIR, 'media/' + transaction_code + "/linux"))
  110. os.makedirs(os.path.join(settings.BASE_DIR, 'media/' + transaction_code + "/darwin"))
  111. ret = FBMsg.ret()
  112. ret['ip'] = ip
  113. data['openid'] = transaction_code
  114. data['appid'] = transaction_code
  115. data['name'] = str(data['name'])
  116. data['staff_type'] = 'Admin'
  117. data['user_id'] = user_id
  118. data.pop('password1', '')
  119. data.pop('password2', '')
  120. ret['data'] = data
  121. return JsonResponse(ret)