示例#1
0
async def user_create(request):

    if request.app.config.REGISTRATION == "closed":
        return response.json({'zrada': 'registration closed'})

    invite = request.json.pop("invite", None)
    if request.app.config.REGISTRATION == "invite":
        if not invite or invite != request.app.config.INVITE_CODE:
            return response.json({'zrada': 'need valid invite'})

    username = request.json["username"]
    password = request.json["password"]
    if username and password:
        is_uniq = await User.is_unique(doc=dict(username=username))
        if is_uniq in (True, None):
            await User.insert_one(
                dict(name=username,
                     password=generate_password_hash(password),
                     email=request.json.get("email"),
                     profile=request.json.get("profile"),
                     details=request.json.get("details"),
                     uri=f"{request.app.base_url}/{username}"))
            return response.json({'peremoga': 'yep'}, status=201)
        else:
            return response.json({'zrada': 'username n/a'})
示例#2
0
 async def create(cls, user_data, base_url):
     user_data["name"] = user_data.pop("username")
     user_data["password"] = generate_password_hash(user_data["password"])
     user_data["uri"] = f"{base_url}/{user_data['name']}"
     await cls.insert_one(user_data)
     user = await cls.find_one({"name": user_data['name']})
     return user
示例#3
0
 def test_check_hash(self):
     pw_hash = self.eve_bcrypt.generate_password_hash('secret')
     # check a correct password
     self.assertTrue(self.eve_bcrypt.check_password_hash(pw_hash, 'secret'))
     # check an incorrect password
     self.assertFalse(
         self.eve_bcrypt.check_password_hash(pw_hash, 'hunter2'))
     # check unicode
     pw_hash = self.eve_bcrypt.generate_password_hash('\u2603')
     self.assertTrue(self.eve_bcrypt.check_password_hash(pw_hash, '\u2603'))
     # check helpers
     pw_hash = generate_password_hash('hunter2')
     self.assertTrue(check_password_hash(pw_hash, 'hunter2'))
示例#4
0
    async def post(self, request):
        new_user_email = request.json.get('email')
        new_user_password = request.json.get('password')
        new_user_first_name = request.json.get('first_name')
        new_user_last_name = request.json.get('last_name')

        user_validator = NewUserValidator(first_name=new_user_first_name,
                                          last_name=new_user_last_name,
                                          email=new_user_email,
                                          password=new_user_password)

        if not await user_validator.is_valid():
            return json({
                'status': 'failed validation',
                'errors': user_validator.errors
            })

        await User.create(first_name=new_user_first_name,
                          last_name=new_user_last_name,
                          email=new_user_email,
                          password=generate_password_hash(new_user_password))

        return json({'status': 'created'}, status=201)
示例#5
0
 def test_unicode_hash(self):
     password = '******'
     h = generate_password_hash(password).decode('utf-8')
     self.assertTrue(check_password_hash(h, password))