views.py 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. # coding=utf-8
  2. from __future__ import unicode_literals
  3. import random
  4. import json
  5. import uuid
  6. from django.contrib import auth
  7. from django.core.cache import cache
  8. from django.conf import settings
  9. from common import core_views as cv
  10. from common.captcha import create_idcode
  11. from common.models import UserInfo
  12. import control_user as cr
  13. from utils.cloopen_sms import cloopensms
  14. class GetPhoneCodeView(cv.BaseView):
  15. def send_resetpwd_code_msg(self,phones,content):
  16. """重置密码短信验证码
  17. """
  18. template_id = "401151"
  19. #if settings.SEND_SMS:
  20. rst,msg = cloopensms.send(phones,template_id,content)
  21. return rst,msg
  22. def post(self, request):
  23. """#获取短信验证码
  24. @phone:"15982456282",手机号
  25. """
  26. uid = request.user.id
  27. qdata = request.json
  28. phone = qdata.get("phone","")
  29. #phone = UserInfo.objects.filter(id=uid).first().phone
  30. #if not phone:
  31. # return cv.to_normal_fail(u"参数错误")
  32. rcode = "".join(random.sample('1234567890',6))
  33. valid_time = 60*2
  34. #rst,msg = self.send_resetpwd_code_msg([phone],[rcode,2])
  35. rst = True
  36. if rst:
  37. cache.set(phone,rcode,valid_time)
  38. return cv.to_suc({})
  39. else:
  40. return cv.to_normal_fail(msg)
  41. class CaptchaView(cv.BaseView):
  42. def get(self, request):
  43. """#获取图形验证码(管理后台)
  44. >imgcode_id:"",后台返回登录时和验证码一起回传给后台
  45. >imgcode:"",验证码图片base64
  46. """
  47. captcha, buf_str = create_idcode(4)
  48. uid = str(uuid.uuid4())
  49. cache.set(uid, captcha, 30 * 60)
  50. return cv.to_suc({'imgcode': buf_str, 'imgcode_id': uid})
  51. class LoginView(cv.BaseView):
  52. def post(self, request):
  53. """#账号登录(管理后台)
  54. @username:"root",str,账号
  55. @password:"root",str,密码
  56. @imgcode_id:"erwerkkk",图形验证码接口返回的
  57. @imgcode:"erwe",图形验证码
  58. """
  59. try:
  60. rst = cr.login_user(request)
  61. return cv.to_suc()
  62. except Exception as e:
  63. cv.tracefail()
  64. return cv.to_fail(e)
  65. class LogoutView(cv.AuthView):
  66. def post(self, request):
  67. '''
  68. #退出登录(管理后台)
  69. '''
  70. user = request.user
  71. if user:
  72. user_name = user.realname
  73. user_email = user.name
  74. else:
  75. user_name = ''
  76. user_email = ''
  77. auth.logout(request)
  78. return cv.to_suc()
  79. class RegistView(cv.BaseView):
  80. def post(self,request):
  81. """#用户注册
  82. @utype:1/2/3,全职/兼职/企业
  83. @realname:姓名
  84. @phone:"15982456282",手机号
  85. @phcode:"1234",短信验证码
  86. @password:"123456",密码
  87. @repassword:"123456",确认密码
  88. """
  89. try:
  90. rst = cr.regist_user(request)
  91. except Exception as e:
  92. cv.tracefail()
  93. return cv.to_fail(e)
  94. return cv.to_suc()
  95. class InfoView(cv.AdminView):
  96. def get(self, request):
  97. '''
  98. #获取全局账号信息(权限控制)
  99. '''
  100. try:
  101. users = cr.get_account_info(request)
  102. return cv.to_suc(users)
  103. except Exception as e:
  104. return cv.to_fail(e)
  105. class ResetPwdView(cv.AdminView):
  106. def put(self, request):
  107. """
  108. #重置密码(平台管理后台)
  109. @password:"",新密码
  110. @repassword:"",确认密码
  111. """
  112. try:
  113. cr.reset_password(request)
  114. return cv.to_suc()
  115. except Exception as e:
  116. return cv.to_fail(e)