Ejemplo n.º 1
0
    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='修改成功'))
Ejemplo n.º 2
0
    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'))
Ejemplo n.º 3
0
    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))