| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- # coding=utf-8
- from __future__ import unicode_literals
- import random
- import json
- import uuid
- from django.contrib import auth
- from django.core.cache import cache
- from django.conf import settings
- from common import core_views as cv
- from common.captcha import create_idcode
- from common.models import UserInfo
- import control_user as cr
- from utils.cloopen_sms import cloopensms
- class GetPhoneCodeView(cv.BaseView):
- def send_resetpwd_code_msg(self,phones,content):
- """重置密码短信验证码
- """
- template_id = "401151"
- #if settings.SEND_SMS:
- rst,msg = cloopensms.send(phones,template_id,content)
- return rst,msg
- def post(self, request):
- """#获取短信验证码
- @phone:"15982456282",手机号
- """
- uid = request.user.id
- qdata = request.json
- phone = qdata.get("phone","")
- #phone = UserInfo.objects.filter(id=uid).first().phone
- #if not phone:
- # return cv.to_normal_fail(u"参数错误")
- rcode = "".join(random.sample('1234567890',6))
- valid_time = 60*2
- #rst,msg = self.send_resetpwd_code_msg([phone],[rcode,2])
- rst = True
- if rst:
- cache.set(phone,rcode,valid_time)
- return cv.to_suc({})
- else:
- return cv.to_normal_fail(msg)
- class CaptchaView(cv.BaseView):
- def get(self, request):
- """#获取图形验证码(管理后台)
- >imgcode_id:"",后台返回登录时和验证码一起回传给后台
- >imgcode:"",验证码图片base64
- """
- captcha, buf_str = create_idcode(4)
- uid = str(uuid.uuid4())
- cache.set(uid, captcha, 30 * 60)
- return cv.to_suc({'imgcode': buf_str, 'imgcode_id': uid})
- class LoginView(cv.BaseView):
- def post(self, request):
- """#账号登录(管理后台)
- @username:"root",str,账号
- @password:"root",str,密码
- @imgcode_id:"erwerkkk",图形验证码接口返回的
- @imgcode:"erwe",图形验证码
- """
- try:
- rst = cr.login_user(request)
- return cv.to_suc()
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class LogoutView(cv.AuthView):
- def post(self, request):
- '''
- #退出登录(管理后台)
- '''
- user = request.user
- if user:
- user_name = user.realname
- user_email = user.name
- else:
- user_name = ''
- user_email = ''
- auth.logout(request)
- return cv.to_suc()
- class RegistView(cv.BaseView):
- def post(self,request):
- """#用户注册
- @utype:1/2/3,全职/兼职/企业
- @realname:姓名
- @phone:"15982456282",手机号
- @phcode:"1234",短信验证码
- @password:"123456",密码
- @repassword:"123456",确认密码
- """
- try:
- rst = cr.regist_user(request)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- return cv.to_suc()
- class InfoView(cv.AdminView):
- def get(self, request):
- '''
- #获取全局账号信息(权限控制)
- '''
- try:
- users = cr.get_account_info(request)
- return cv.to_suc(users)
- except Exception as e:
- return cv.to_fail(e)
- class ResetPwdView(cv.AdminView):
- def put(self, request):
- """
- #重置密码(平台管理后台)
- @password:"",新密码
- @repassword:"",确认密码
- """
- try:
- cr.reset_password(request)
- return cv.to_suc()
- except Exception as e:
- return cv.to_fail(e)
|