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. app_code =Md5.md5(data['name'] + '1')
  63. user = User.objects.create_user(username=str(data['name']), password=str(data['password1']))
  64. Users.objects.create(user_id=user.id, name=str(data['name']),
  65. openid=transaction_code, appid=app_code,
  66. t_code=Md5.md5(str(timezone.now())),
  67. developer=1, ip=ip)
  68. auth.login(request, user)
  69. check_code = random.randint(1000, 9999)
  70. staff.objects.create(staff_name=str(data['name']),
  71. staff_type='Admin',
  72. check_code=check_code,
  73. openid=transaction_code,
  74. appid=transaction_code,
  75. is_look=1,)
  76. if Users.objects.filter(name='PDA1', developer=1, is_delete=0).exists():
  77. print("PDA1已存在")
  78. else:
  79. staff.objects.create(staff_name='PDA1',
  80. staff_type='Inbound',
  81. check_code="123456",
  82. openid="PDA1",
  83. appid="PDA1",
  84. is_look=1,)
  85. User.objects.create_user(username='PDA1',password=str(123456))
  86. Users.objects.create(user_id=user.id, name='PDA1',
  87. openid="PDA1", appid="PDA1",
  88. t_code=Md5.md5(str(timezone.now())),
  89. developer=1, ip=ip)
  90. if Users.objects.filter(name='PDA2', developer=1, is_delete=0).exists():
  91. print("PDA2已存在")
  92. else:
  93. staff.objects.create(staff_name='PDA2',
  94. staff_type='Inbound',
  95. check_code="123456",
  96. openid="PDA2",
  97. appid="PDA2",
  98. is_look=1,)
  99. User.objects.create_user(username='PDA2',password=str(123456))
  100. Users.objects.create(user_id=user.id, name='PDA2',
  101. openid="PDA2", appid="PDA2",
  102. t_code=Md5.md5(str(timezone.now())),
  103. developer=1, ip=ip)
  104. user_id = staff.objects.filter(openid=transaction_code, staff_name=str(data['name']),
  105. staff_type='Admin', check_code=check_code).first().id
  106. folder = os.path.exists(os.path.join(settings.BASE_DIR, 'media/' + transaction_code))
  107. if not folder:
  108. os.makedirs(os.path.join(settings.BASE_DIR, 'media/' + transaction_code))
  109. os.makedirs(os.path.join(settings.BASE_DIR, 'media/' + transaction_code + "/win32"))
  110. os.makedirs(os.path.join(settings.BASE_DIR, 'media/' + transaction_code + "/linux"))
  111. os.makedirs(os.path.join(settings.BASE_DIR, 'media/' + transaction_code + "/darwin"))
  112. ret = FBMsg.ret()
  113. ret['ip'] = ip
  114. data['openid'] = transaction_code
  115. data['appid'] = transaction_code
  116. data['name'] = str(data['name'])
  117. data['staff_type'] = 'Admin'
  118. data['user_id'] = user_id
  119. data.pop('password1', '')
  120. data.pop('password2', '')
  121. ret['data'] = data
  122. return JsonResponse(ret)