views.py 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  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. import json, random, os
  11. from django.conf import settings
  12. @method_decorator(csrf_exempt, name='dispatch')
  13. def register(request, *args, **kwargs):
  14. post_data = json.loads(request.body.decode())
  15. data = {
  16. "name": post_data.get('name'),
  17. "password1": post_data.get('password1'),
  18. "password2": post_data.get('password2')
  19. }
  20. ip = request.META.get('HTTP_X_FORWARDED_FOR') if request.META.get(
  21. 'HTTP_X_FORWARDED_FOR') else request.META.get('REMOTE_ADDR')
  22. if Users.objects.filter(name=str(data['name']), developer=1, is_delete=0).exists():
  23. err_user_same = FBMsg.err_user_same()
  24. err_user_same['ip'] = ip
  25. err_user_same['data'] = data['name']
  26. return JsonResponse(err_user_same)
  27. else:
  28. if data.get('password1') is None:
  29. err_password1_empty = FBMsg.err_password1_empty()
  30. err_password1_empty['ip'] = ip
  31. err_password1_empty['data'] = data['name']
  32. return JsonResponse(err_password1_empty)
  33. else:
  34. if str(data['password1']) == '':
  35. err_password1_empty = FBMsg.err_password1_empty()
  36. err_password1_empty['ip'] = ip
  37. err_password1_empty['data'] = data['name']
  38. return JsonResponse(err_password1_empty)
  39. else:
  40. if data.get('password2') is None:
  41. err_password2_empty = FBMsg.err_password2_empty()
  42. err_password2_empty['ip'] = ip
  43. err_password2_empty['data'] = data['name']
  44. return JsonResponse(err_password2_empty)
  45. else:
  46. if str(data['password2']) == '':
  47. err_password2_empty = FBMsg.err_password2_empty()
  48. err_password2_empty['ip'] = ip
  49. err_password2_empty['data'] = data['name']
  50. return JsonResponse(err_password2_empty)
  51. else:
  52. if str(data['password1']) != str(data['password2']):
  53. err_password_not_same = FBMsg.err_password_not_same()
  54. err_password_not_same['ip'] = ip
  55. err_password_not_same['data'] = data['name']
  56. return JsonResponse(err_password_not_same)
  57. else:
  58. # 第一次注册时候,顺便注册开发者用户
  59. # 后续开发者用户需要手动修改用户信息
  60. if Users.objects.filter().count() == 0:
  61. userzl = User.objects.create_user(username='adminzl',password=str(123456))
  62. Users.objects.create(
  63. user_name = userzl,
  64. user_id=userzl.id, name='adminzl',
  65. openid="adminzl", appid="adminzl",
  66. t_code=Md5.md5(str(timezone.now())),
  67. developer=1, ip=ip)
  68. transaction_code = Md5.md5(data['name'])
  69. user = User.objects.create_user(username=str(data['name']),
  70. password=str(data['password1']))
  71. Users.objects.create(
  72. user_name = user,
  73. user_id=user.id, name=str(data['name']),
  74. openid=transaction_code, appid=Md5.md5(data['name'] + '1'),
  75. t_code=Md5.md5(str(timezone.now())),
  76. developer=1, ip=ip)
  77. auth.login(request, user)
  78. folder = os.path.exists(os.path.join(settings.BASE_DIR, 'media/' + transaction_code))
  79. if not folder:
  80. os.makedirs(os.path.join(settings.BASE_DIR, 'media/' + transaction_code))
  81. os.makedirs(os.path.join(settings.BASE_DIR, 'media/' + transaction_code + "/win32"))
  82. os.makedirs(os.path.join(settings.BASE_DIR, 'media/' + transaction_code + "/linux"))
  83. os.makedirs(os.path.join(settings.BASE_DIR, 'media/' + transaction_code + "/darwin"))
  84. ret = FBMsg.ret()
  85. ret['ip'] = ip
  86. data['openid'] = transaction_code
  87. data['name'] = str(data['name'])
  88. data.pop('password1', '')
  89. data.pop('password2', '')
  90. ret['data'] = data
  91. return JsonResponse(ret)