def patch(self, *args, **kwargs): data = json.loads(self.request.body.decode("utf-8")) old_password = data.get('old_password', None) new_password1 = data.get('new_password1', None) new_password2 = data.get('new_password2', None) username = self.get_current_user() if not check_password(new_password1): return self.write(dict(code=-5, msg='密码复杂度必须为: 超过8位,包含数字,大小写字母 等')) if not old_password or not new_password1 or not new_password2 or not username: return self.write(dict(code=-1, msg='不能有空值')) if new_password1 != new_password2: return self.write(dict(code=-2, msg='新密码输入不一致')) with DBContext('r') as session: user_info = session.query(Users).filter( Users.username == username).first() if user_info.password != gen_md5(old_password): return self.write(dict(code=-3, msg='密码错误')) with DBContext('w', None, True) as session: session.query(Users).filter(Users.username == username).update( {Users.password: gen_md5(new_password1)}) return self.write(dict(code=0, msg='修改成功'))
def post(self, *args, **kwargs): data = json.loads(self.request.body.decode("utf-8")) username = data.get('username', None) nickname = data.get('nickname', None) password = data.get('password', None) department = data.get('department', None) tel = data.get('tel', None) wechat = data.get('wechat', None) no = data.get('no', None) email = data.get('email', None) if not username or not nickname or not department or not tel or not wechat or not no or not email: return self.write(dict(code=-1, msg='参数不能为空')) with DBContext('r') as session: user_info1 = session.query(Users).filter( Users.username == username).first() user_info2 = session.query(Users).filter(Users.tel == tel).first() if user_info1: return self.write(dict(code=-2, msg='用户名已注册')) if user_info2: return self.write(dict(code=-3, msg='手机号已注册')) if not password: password = '******' else: if not check_password(password): return self.write( dict(code=-5, msg='你这密码复杂度是逗我玩吗?密码复杂度: 超过8位,英文加数字,大小写,没有特殊符号')) password = gen_md5(password) mfa = base64.b32encode( bytes(str(shortuuid.uuid() + shortuuid.uuid())[:-9], encoding="utf-8")).decode("utf-8") with DBContext('w', None, True) as session: session.add( Users(username=username, password=password, nickname=nickname, department=department, tel=tel, wechat=wechat, no=no, email=email, google_key=mfa, superuser='******', status='20')) self.write(dict(code=0, msg='如果没填写密码 则新用户密码为:shenshuo'))
def post(self, *args, **kwargs): data = json.loads(self.request.body.decode("utf-8")) username = data.get('username', None) nickname = data.get('nickname', None) password = data.get('password', None) department = data.get('department', None) tel = data.get('tel', None) wechat = data.get('wechat', None) no = data.get('no', None) email = data.get('email', None) if not username or not nickname or not department or not tel or not wechat or not no or not email: return self.write(dict(code=-1, msg='参数不能为空')) with DBContext('r') as session: user_info1 = session.query(Users).filter( Users.username == username).first() user_info2 = session.query(Users).filter(Users.tel == tel).first() user_info3 = session.query(Users).filter( Users.email == email).first() user_info4 = session.query(Users).filter( Users.nickname == nickname).first() if user_info1: return self.write(dict(code=-2, msg='用户名已注册')) if user_info2: return self.write(dict(code=-3, msg='手机号已注册')) if user_info3: return self.write(dict(code=-4, msg='邮箱已注册')) if user_info4: return self.write(dict(code=-4, msg='昵称已注册')) if not password: md5_password = shortuuid.uuid() password = gen_md5(md5_password) else: if not check_password(password): return self.write( dict(code=-5, msg='密码复杂度必须为: 超过8位,包含数字,大小写字母 等')) password = gen_md5(password) mfa = base64.b32encode( bytes(str(shortuuid.uuid() + shortuuid.uuid())[:-9], encoding="utf-8")).decode("utf-8") redis_conn = cache_conn() configs_init('all') config_info = redis_conn.hgetall(const.APP_SETTINGS) config_info = convert(config_info) obj = SendMail( mail_host=config_info.get(const.EMAIL_HOST), mail_port=config_info.get(const.EMAIL_PORT), mail_user=config_info.get(const.EMAIL_HOST_USER), mail_password=config_info.get(const.EMAIL_HOST_PASSWORD), mail_ssl=True if config_info.get(const.EMAIL_USE_SSL) == '1' else False, mail_tls=True if config_info.get(const.EMAIL_USE_TLS) == '1' else False) with DBContext('w', None, True) as session: session.add( Users(username=username, password=password, nickname=nickname, department=department, tel=tel, wechat=wechat, no=no, email=email, google_key=mfa, superuser='******')) obj.send_mail(email, '用户注册成功', '密码为:{} \n MFA:{}'.format(password, mfa), subtype='plain') return self.write( dict(code=0, msg='恭喜你! 注册成功,赶紧联系管理员给你添加权限吧!!!', mfa=mfa))