示例#1
0
文件: admin.py 项目: mumulizi/app
def add_user():
    """
    添加新用户
    :return:
    """

    username = request.forms.username
    password = request.forms.password
    nickname = request.forms.nickname
    status = request.forms.status
    create_time = datetime.datetime.now()
    # 加密密码
    password = hashlib.md5(password.encode("UTF-8")).hexdigest()

    # 检测用户名是否存在
    if UserModel.select().where(UserModel.username == username,
                                UserModel.status != 2).count():
        return {"code": -1}

    user = UserModel(username=username,
                     password=password,
                     nickname=nickname,
                     status=status,
                     create_time=create_time)
    user.save()

    return {"code": 0}
示例#2
0
文件: user.py 项目: yangxue088/Minos
    def _post_edit(self):
        profile = {}
        profile["email"] = self.get_body_argument("email", default=None)
        profile["website"] = self.get_body_argument("website", default=None)
        profile["qq"] = self.get_body_argument("qq", default=None)
        profile["address"] = self.get_body_argument("address", default=None)
        profile["signal"] = self.get_body_argument("signal", default=None)
        orgpass = self.get_body_argument("orgpass", default=None)
        if orgpass:
            password = self.get_body_argument("password")
            repassword = self.get_body_argument("repassword")
            if not password or len(password) < 5:
                self.custom_error("新密码太短")
            if password != repassword:
                self.custom_error("两次输入的密码不相同")
            user = yield self.db.member.find_one(
                {"username": self.current_user["username"]})
            check = yield self.backend.submit(hash.verify, orgpass,
                                              user["password"])
            if not check:
                self.custom_error("原始密码输入错误")
            profile["password"] = yield self.backend.submit(hash.get, password)

        if profile["email"].endswith('@tjchtech.com'):
            self.custom_error("由于邮件域名问题,不能使用公司邮箱")

        # check user profile
        model = UserModel()
        if not model(profile):
            self.custom_error(model.error_msg)
        yield self.db.member.update(
            {"username": self.current_user["username"]}, {"$set": profile})
        self.redirect("/user/edit")
示例#3
0
    def post(self, gameKey: int) -> Response:
        payload: dict = request.json
        game: GameModel = GameModel.objects(game_key=gameKey).first()
        if not game:
            return Response('', 204)

        user: UserModel = UserModel.objects(user_id=payload['id'],
                                            game=game).first()
        if user:
            if check_password_hash(user.password, payload['password']):
                return jsonify({
                    'accessToken':
                    create_access_token(payload['id'],
                                        expires_delta=timedelta(days=10))
                })

            else:
                return Response('', 205)

        default_team: TeamModel = TeamModel.objects(game=game,
                                                    team_id=0).first()
        UserModel(game, payload['id'], payload['email'],
                  generate_password_hash(payload['password']),
                  default_team).save()
        return jsonify({
            'accessToken':
            create_access_token(payload['id'],
                                expires_delta=timedelta(days=10))
        })
示例#4
0
    def post(self):
        ''' 创建用户 '''
        args = self.jsondata
        if not args:
            return send_msg('fail', '无json数据')

        if not args.name:
            return send_msg('fail', '无参数name')
        if not args.password:
            return send_msg('fail', '无参数password')
        if not args.email:
            return send_msg('fail', '无参数email')

        user = UserModel.query.filter_by(name=args.name).first()
        if user:
            return send_msg('fail', '用户名已被占用')

        newuser = UserModel(args.name, args.password, args.email)
        db.session.add(newuser)

        dbflag, dbmsg = db_write()
        if dbflag:
            return send_msg('dberror', dbmsg)
        userlog(self.resourcename, '新建用户:' + args.name, 'succ')
        return send_msg('succ')
示例#5
0
    def post(self):
        data = request.get_json()
        print("\n")
        print("Login Data:\n")
        print(data)
        print("\n")

        hashed_password = generate_password_hash(data['password'],
                                                 method='sha256')

        new_user = UserModel(public_id=str(uuid.uuid4()),
                             name=data['name'],
                             username=data['username'],
                             email=data['email'],
                             password=hashed_password,
                             admin=False)

        db.session.add(new_user)
        db.session.commit()

        return jsonify({'message': 'User successfully created.'}, {
            'public_id': new_user.public_id,
            'name': new_user.name,
            'username': new_user.username,
            'email': new_user.email,
            'admin': new_user.admin
        })
示例#6
0
    def on_get(self, req, resp, id):
        #"""GET ALL USERS  WHO HAVE A INTEREST""
        db = MySQLdb.connect(host="localhost",
                             user="******",
                             passwd="123456",
                             db="processodesoftware",
                             charset="utf8",
                             use_unicode=True)
        cursor = db.cursor()
        resp.status = falcon.HTTP_200  # Ok!
        id = int(id)
        #Executa a query
        sql = "SELECT id_user FROM user_interests WHERE id_skill = %s" % (id)
        cursor.execute(sql)
        #Recebe todos os resultados
        query = cursor.fetchall()
        #Cria uma lista guardar os dados convertidos
        queryObjects = []
        #Converte
        for q in query:

            id = int(q[0])
            #Executa a query
            sql = "SELECT id, nome, email, idade FROM users WHERE id = %d" % (
                id)
            cursor.execute(sql)
            #Recebe todos os resultados
            query = cursor.fetchall()
            #Converte
            user = UserModel(query[0][0], query[0][1], query[0][2],
                             query[0][3])
            queryObjects.append(user.__dict__)

        resp.body = json.dumps(queryObjects)
        db.close()
示例#7
0
    def _post_addadmin(self):
        userid = self.get_body_argument('userid', default='')
        password = self.get_body_argument('password', default='')
        repassword = self.get_body_argument('repassword', default='')

        # 两次输入的密码不匹配
        if password != repassword:
            self._json('fail', '两次密码不匹配')
        # 密码长度太短
        if len(password) < 6:
            self._json('fail', '密码设置过短')
        # 加密密码
        password = yield self.backend.submit(hash.get, password)
        oldadmin = yield self.db.admin.find_one({'userid': userid})
        # 用户id已存在
        if oldadmin:
            self._json('fail', '用户id已存在, 请更换')
        # 添加用户
        user = {
            'userid': userid,
            'password': password,
            'power': 20,
            'registertime': time.time(),
            'faceurl': '/static/assets/img/user04.png'
        }
        model = UserModel()
        if not model(user):
            self._json('fail', model.error_msg)
        result = yield self.db.admin.insert(user)
        self._json('success')
示例#8
0
 def post(self):
     data = UserRegister.parser.parse_args()
     if UserModel.find_by_username(data['username']):
         return {'message': 'This user is already exists'}, 400
     user = UserModel(**data)
     user.save_to_db()
     return {"message": "User created successfully"}, 201
 def on_get(self, req, resp, id):
     #"""GET"""
     db = MySQLdb.connect(host="localhost",
                          user="******",
                          passwd="123456",
                          db="processodesoftware",
                          charset="utf8",
                          use_unicode=True)
     cursor = db.cursor()
     resp.status = falcon.HTTP_200  # Ok!
     id = int(id)
     #Executa a query
     sql = "SELECT id, nome, email, idade FROM users WHERE id = %d" % (id)
     cursor.execute(sql)
     #Recebe todos os resultados
     query = cursor.fetchall()
     #Cria uma lista guardar os dados convertidos
     queryObjects = []
     #Converte
     for q in query:
         cursor.execute(
             "SELECT s.id, s.name FROM user_interests ui JOIN skills s ON ui.id_skill = s.id WHERE ui.id_user = %d"
             % q[0])
         interests = cursor.fetchall()
         cursor.execute(
             "SELECT s.id, s.name FROM user_skills us JOIN skills s ON us.id_skill = s.id WHERE us.id_user = %d"
             % q[0])
         skills = cursor.fetchall()
         user = UserModel(q[0], q[1], q[2], q[3], "", interests, skills)
         queryObjects.append(user.__dict__)
     resp.body = json.dumps(queryObjects)
     db.close()
示例#10
0
    def post(self):
        data = UserRegister.parser.parse_args()

        if UserModel.find_by_username(data['username']):
            return {'message': 'that username already exist'}, 400

        user = UserModel(**data)  #(data['username'], data['password'])
        user.add_to_db()
        return {'message': 'user registered successfully'}, 201
示例#11
0
    def post(self):
        data = UserRegister.parser.parse_args()
        if UserModel.find_by_username(data['username']):
            return {"message": "A user with that name already exists."}, 400

        user = UserModel(**data)
        user.save_to_db()

        return {"message": "User created successfully."}, 201
示例#12
0
	def post(self):
		project = UserRegister.parser.parse_args()

		if UserModel.find_by_username(project['username']):
			return {'message':'A user with this username is already exist'}, 400
		
		user = UserModel(**project)
		user.save_to_db()

		return {"Message": "User created successfully"}, 201
示例#13
0
    def post(self):
        reqdata=UserRegister.parser.parse_args()
        existinguser=UserModel.find_by_username(reqdata['username'])
        print("reqdata is: ",reqdata)
        if existinguser:
            return ({'message':'user already exists'},400)

        newuser=UserModel(reqdata['username'],reqdata['password'])
        newuser.save_to_db()
        return ({'message':'user registered successfully'},201)
示例#14
0
def register():
    user_name = request.values['userName']
    password = request.values['password']
    if UserModel.find_by_username(user_name):
        return {"message": USER_ALREADY_EXIT}, 400

    user = UserModel(user_name, password)
    user.save_to_db()

    return {"message": USER_OP.format("created")}, 201
示例#15
0
    def post(self):
        data = UserRegister.parser.parse_args()

        if UserModel.find_by_username(data["username"]):
            return {"message": "A user with that username already exsits"}, 400

        user = UserModel(data["username"], data["password"])
        user.save_to_db()

        return {"message": "User created successfully"}, 201
示例#16
0
 def _checkusername_action(self):
     username = self.get_body_argument("username", default=None)
     user = {"username": username}
     model = UserModel()
     if not model(user):
         self._json("fail", model.error_msg)
     user = yield self.db.member.find_one({"username": username})
     if user:
         self._json("fail", "用户名已存在")
     else:
         self._json("success")
示例#17
0
 def post(self):
     data = arguments.parse_args()
     if UserModel.findByLogin(data['login']):
         return BadRequest('The informed login already exists.')
     if UserModel.findByEmail(data['email']):
         return BadRequest('The informed email already exists.')
     user = UserModel(**data)
     user.activated = False
     user.save()
     user.send_confirmation_email()
     return user.json(), 201
示例#18
0
 def Login(self):
   uname = self.Post('uname')
   passwd = self.Post('passwd')
   # 验证用户名
   if not Safety.IsRight('uname',uname) and not Safety.IsRight('tel',uname) and not Safety.IsRight('email',uname):
     return self.GetJSON({'code':4000, 'msg':'请输入用户名/手机/邮箱'})
   # 密码长度
   if not Safety.IsRight('passwd',passwd) :
     return self.GetJSON({'code':4000, 'msg':'请输入6~16位密码'})
   # 查询
   model = UserModel()
   model.Table('user AS a')
   model.LeftJoin('user_info AS b', 'a.id=b.uid')
   model.LeftJoin('api_perm AS c', 'a.id=c.uid')
   model.LeftJoin('api_role AS d', 'c.role=d.id')
   model.Where(
     '(a.uname=%s OR a.tel=%s OR a.email=%s) AND a.password=%s',
     uname, uname, uname, Hash.Md5(passwd)
   )
   model.Columns('a.id', 'a.state', 'b.position', 'b.nickname', 'b.name', 'b.gender', 'b.birthday', 'b.img', 'c.perm', 'd.perm as role_perm')
   data = model.FindFirst()
   # 是否存在
   if not data : return self.GetJSON({'code':4000, 'msg':'帐号或密码错误!'})
   # 是否禁用
   if data['state']!='1' : return self.GetJSON({'code':4000, 'msg':'该用户已被禁用!'})
   # 权限
   perm = data['role_perm']
   if data['perm'] : perm=data['perm']
   if not perm : return self.GetJSON({'code':4000, 'msg':'该用户不允许登录!'})
   redis = Redis()
   key = Env.api_token_prefix+'_perm_'+str(data['id'])
   redis.Set(key, perm)
   redis.Expire(key, Env.api_token_time)
   redis.Close()
   # 登录时间
   model.Table('user')
   model.Set({'ltime': Util.Time()})
   model.Where('id=%s', data['id'])
   model.Update()
   # 返回
   return self.GetJSON({
     'code': 0,
     'msg': '成功',
     'token': ApiToken.Create({'uid':str(data['id']), 'uname':uname}),
     'uinfo': {
       'uid': data['id'],
       'uname': uname,
       'position': data['position'],
       'nickname': data['nickname'],
       'name': data['name'],
       'gender': data['gender'],
       'img': Env.base_url+data['img'] if data['img']!='' else '',
     }
   })
示例#19
0
 def post(self):
     data_load = request.get_json()
     try:
         data = UserSchema().load(data_load)
     except ValidationError as err:
         return err.messages, 404
     if UserModel.find_by_username(data["username"]) is None:
         user = UserModel(data["username"], data["password"])
         user.add_user()
         return {"response": "The user was successfuly created"}, 201
     else:
         return dict(error="User with this username already exist"), 500
示例#20
0
    def post(self):
        data = User.parser.parse_args()
        user = UserModel.find(data["username"])
        if user:
            return {
                "message": "User {} already exists".format(data["username"])
            }, 400

        user = UserModel(**data)
        user.save()

        return {"message": "User added"}, 201
示例#21
0
    def post(self):

        payload = request.json
        for key in ['id', 'password']:
            if key not in payload:
                abort(400)

        if UserModel.objects(id=payload['id']).first():
            return Response('', 204)

        UserModel(id=payload['id'], pw=payload['password']).save()
        return Response('', 201)
示例#22
0
    def post(self):
        data = UserRegister.parser.parse_args()
        if UserModel.find_by_username(data['username']):
            return {"message": "User already exists."}

        i = UserModel(**data)
        try:
            i.save_to_db()
        except:
            return {
                "message": "An error occurred."
            }, 500  # code for internal error
        return {"message": "User created successfully."}, 201
示例#23
0
文件: util.py 项目: kyleslight/wutong
    def __init__(self, number):
        self.number = number
        self.db = db_test
        self.user = UserModel(self.db)
        self.group = GroupModel(self.db)
        self.article = ArticleModel(self.db)
        self.admin = {
            'email': '*****@*****.**',
            'penname': 'wutong',
            'password': '******',
        }

        self.gen_test_data()
示例#24
0
 def post(self):
     data = UserRegister.parser.parse_args()
     if UserModel.find_by_username(data["username"]):
         return {
             "message":
             "A user with this username already exists in the database!"
         }, 400
     user = UserModel(**data)
     user.save_to_db()
     return {
         "message":
         f"user {data['username']} has been created successfully!!"
     }
示例#25
0
    def post(self):
        """
        添加用户
        serializer.Response
        """
        parser = reqparse.RequestParser()
        parser.add_argument('username',
                            type=str,
                            help='Username',
                            location="json")
        parser.add_argument('password',
                            type=str,
                            help='Password',
                            location="json")
        parser.add_argument('email', type=str, help='Email', location="json")
        args = parser.parse_args()

        username = args.get("username", None)
        password = args.get("password", None)
        email = args.get("email", None)

        if ((username is None) or (password is None) or
            (email is None)) and (18 < len(username) < 4):
            return serializer.Response(serializer.USER_INPUT_ERROR, None,
                                       "输入参数不合法 (可能是用户名长度不正确哦.)").Return()

        # 检查用户名是否存在
        temp = UserModel.query.filter_by(username=username).first()
        if temp is not None:
            return serializer.Response(serializer.USER_EXIST_ERROR, None,
                                       "用户名已存在").Return()

        # 检查邮箱是否已经被注册
        temp = UserModel.query.filter_by(email=email).first()
        if temp is not None:
            return serializer.Response(serializer.USER_EXIST_ERROR, None,
                                       "该邮箱已被使用").Return()

        # 防止写入数据库出错.
        try:
            user = UserModel().create(username=username,
                                      password=password,
                                      email=email,
                                      is_admin=False)
            db.session.add(user)
            db.session.commit()
        except sqlalchemy.exc.IntegrityError as e:
            return serializer.Response(serializer.SERVER_DATABASE_ERROR,
                                       e.args, "用户创建失败!").Return()

        return serializer.Response(0, None, "用户创建成功!").Return()
示例#26
0
 def post(self):
     data = Usersignup.parser.parse_args()
     if UserModel.get_user_by_name(data['username']):
         return {
             "message": "User already exists please enter new username"
         }, 400
     # conn = sqlite3.connect('user.db')
     # cursor = conn.cursor()
     # cursor.execute("Insert into user values(NULL, ?,?)",(data['username'],data['password']))
     # conn.commit()
     # conn.close
     user = UserModel(**data)
     user.save_to_db()
     return {"message": "User is created successfully"}, 201
示例#27
0
    def post(self):
        """
        :endpoint: /register
        :post body: {"username":<username>, "password":<password>}

        :return: Create successful or not.
        :rtype: JSON Message.
        """
        data = UserRegister.parser.parse_args()

        if UserModel.find_by_username(data['username']):
            return {"Message": 'The user name has already exists !'}, 400

        user = UserModel(**data)
        user.save_to_db()

        return {"Message": "User created successful!"}, 201
示例#28
0
    def setUpClass(cls):
        cls.db = util.db_test
        cls.tearDownClass()

        cls.model = UserModel(util.db_test)
        cls.email = '*****@*****.**'
        cls.penname = 'test'
        cls.password = '******'

        sql = '''insert into "user"
                        (email, penname, password)
                 values (%s, %s, crypt(%s, gen_salt('bf')))
                 returning uid,
                           md5(CAST(uid AS varchar)) AS "hashuid"'''
        row = cls.db.getrow(sql, cls.email, cls.penname, cls.password)
        cls.uid = row[0]
        cls.hashuid = row[1]
示例#29
0
	def on_get(self, req, resp):
		#"""GET"""
		db = MySQLdb.connect (host = "localhost",user = "******",passwd = "123456",db = "processodesoftware")
		cursor = db.cursor()
		resp.status = falcon.HTTP_200  # Ok!
		#Executa a query
		cursor.execute("SELECT id, nome, email, idade FROM users")
		#Recebe todos os resultados
		query = cursor.fetchall()
		#Cria uma lista guardar os dados convertidos
		queryObjects = []
		#Converte
		for q in query:
				user = UserModel(q[0], q[1], q[2], q[3])
				queryObjects.append(user.__dict__)
		resp.body = json.dumps(queryObjects)
		db.close()
示例#30
0
    def on_post(self, req, resp):
        email = req.media['email']
        password = req.media['password']

        if not password:
            resp.status = falcon.HTTP_400
            resp.body = "Password cannot be emptied!"

        if not UserModel.objects(email=email):
            hashPassword = bcrypt.hashpw(bytes(password, encoding='utf-8'),
                                         bcrypt.gensalt())
            newUser = UserModel(email=email, password=hashPassword)
            newUser.save()
            resp.status = falcon.HTTP_201
            resp.body = "Your account has been created!"
        else:
            resp.status = falcon.HTTP_400
            resp.body = "The email has been used!"