def test_encode_auth_token(self): user = User(email='*****@*****.**', password='******', registered_on=datetime.datetime.utcnow()) app.config.db.session.add(user) app.config.db.session.commit() auth_token = User.encode_auth_token(user.pk) self.assertTrue(isinstance(auth_token, bytes))
async def save_new_user(data, admin=None): user = await User.find_one({'email': data['email']}) if not user: new_user = User( # public_id=str(uuid.uuid4()), email=data['email'], name=data.get('username', ''), registered_on=datetime.datetime.utcnow(), avatar=data.get('avatar', ''), introduction=data.get('introduction', '')) cnt = await User.count_documents() if cnt == 0: new_user.roles = ['admin'] else: new_user.roles = ['viewer'] new_user.password = data['password'] try: await new_user.commit() except Exception as e: logger.exception(e) return response_message(EINVAL, 'Field validating for User failed') user_root = USERS_ROOT / data['email'] try: await aiofiles.os.mkdir(user_root) except FileExistsError as e: return response_message(EEXIST) try: await aiofiles.os.mkdir(user_root / 'test_results') except FileExistsError as e: return response_message(EEXIST) if new_user.avatar == '': img = await render_identicon(hash(data['email']), 27) await async_wraps(img.save)(user_root / ('%s.png' % new_user.pk)) new_user.avatar = '%s.png' % new_user.pk if new_user.name == '': new_user.name = new_user.email.split('@')[0] if not admin: organization = Organization(name='Personal') organization.owner = new_user organization.path = new_user.email organization.members = [new_user] organization.personal = True await organization.commit() new_user.organizations = [organization] await new_user.commit() return generate_token(new_user) else: return response_message(USER_ALREADY_EXIST)
def save_new_user(data, admin=None): user = User.objects(email=data['email']).first() if not user: new_user = User( # public_id=str(uuid.uuid4()), email=data['email'], name=data.get('username', ''), registered_on=datetime.datetime.utcnow(), roles=data.get('roles', ['admin']), avatar=data.get('avatar', ''), introduction=data.get('introduction', '')) new_user.password = data['password'] try: new_user.save() except Exception as e: current_app.logger.exception(e) return response_message(EINVAL, 'Field validating for User failed'), 401 user_root = USERS_ROOT / data['email'] try: os.mkdir(user_root) except FileExistsError as e: return response_message(EEXIST), 401 try: os.mkdir(user_root / 'test_results') except FileExistsError as e: return response_message(EEXIST), 401 if new_user.avatar == '': img = render_identicon(hash(data['email']), 27) img.save(user_root / ('%s.png' % new_user.id)) new_user.avatar = '%s.png' % new_user.id if new_user.name == '': new_user.name = new_user.email.split('@')[0] if not admin: organization = Organization(name='Personal') organization.owner = new_user organization.path = new_user.email organization.members = [new_user] organization.personal = True organization.save() new_user.organizations = [organization] new_user.save() return generate_token(new_user) else: return response_message(USER_ALREADY_EXIST), 409