Example #1
0
def register(username,password,email):
    '''验证用户是否存在 ,不存在就添加到数据库'''
    if User.is_exists(username):
        return {'msg':'username already exits'}

    hash_pass = hash_it(password)
    User.add_user(username,hash_pass,email)
    return {'msg':'ok'}
Example #2
0
def register(username, password, email):
    """
    把用户注册信息添加进数据库
    """
    if User.is_exists(username):
        return {'msg': 'username is exists'}

    hash_pass = hash_it(password)
    User.add_user(username, password=hash_pass, email=email)
    return {'msg': 'ok'}
Example #3
0
def register(db_session, username, password):
    """
    用于处理注册逻辑,将用户信息保存到数据库
    :param username:
    :param password:
    :return:
    """
    if User.is_exist(db_session, username):
        return 'user is existed'
    else:
        return User.add_user(db_session, username, hashed(password))
Example #4
0
 def post(self, *args, **kwargs):
     username = self.get_argument('username', None)  #获取账号密码
     password = self.get_argument('password', None)
     passed = authenticate(username, password)  #存在:验证身份
     if passed:  #如果身份验证成功
         self.session.set('user_info', username)  #set一个session,内容为username
         User.update_last_login(username)
         next = self.get_argument('next', '/')  #获取下next参数
         self.redirect(next)  #跳转到next
     else:  #验证身份失败:页面打印login fail
         self.write('login fail')
Example #5
0
def register(username, password):
    """
    注册用户,增加用户信息到数据库
    :param username:
    :param password:
    :return:
    """
    if not User.is_exists(username):
        User.add_user(username, hashed(password))
        return {'msg': 'ok'}
    else:
        return {'msg': '用户名已存在,请重新注册. '}
def register(username, password):
    """
    注册
    :param username:
    :param password:
    :return:
    """
    if User.is_exists(username):
        return {'msg': username}
    hash_pass = hash_it(password)
    User.add(username, hash_pass)
    return {'msg': 'ok'}
Example #7
0
def authenticate(username, password):
    '''
    进行身份验证
    :param username: 用户名
    :param password: 密码
    :return: 返回身份是否正确
    '''
    if username and password:
        if User.get_password(username) and hash_it(
                password) == User.get_password(username):  #
            return True
    return False
Example #8
0
    def test_normal_scenario_with_two_users(self):
        # First create some users
        user1 = User.create_user(self.session, 'user1', 'abcd')
        user2 = User.create_user(self.session, 'user2', 'abcd')

        # Make sure user1 has 1 BTC for later deposit into a futures contract
        btc = Asset.create_asset('BTC')
        user1.increase_volume_of_asset(self.session, btc, Decimal('1'))

        # Create a futures contract worth 1 BTC in +14 days
        contract, asset = FuturesContract.create_contract(
            self.session, user1,
            datetime.now() + timedelta(days=14), btc, Decimal('1'), 'FUTURE',
            Decimal('100'))
        # This will fail if user1 has insufficient funds (i.e. < 1 BTC)
        assert contract is not None
        assert asset is not None
        self.session.commit()

        # Create an order for this contract (i.e. newly created asset)
        usd = Asset.create_asset('USD')
        ask_order = Order.create_order(self.session, user1, Decimal('20'), usd,
                                       contract, Decimal('50'), False,
                                       OrderType.limit_order.value)
        # Make sure we have enough funds
        assert ask_order is not None
        self.session.commit()

        # Put order into market
        assert put_order(self.session, ask_order) is None

        # Create a bid order from user2
        user2.increase_volume_of_asset(self.session, usd, Decimal('20'))
        bid_order1 = Order.create_order(self.session, user2, Decimal('20'),
                                        usd, contract, Decimal('50'), True,
                                        OrderType.limit_order.value)
        # Make sure we have enough funds
        assert bid_order1 is not None

        transaction = put_order(self.session, bid_order1)
        assert isinstance(transaction, Transaction)
        assert transaction.ask_order is ask_order
        assert transaction.bid_order is bid_order1

        contract.expire(self.session)
        assert user1.volume_of_asset(self.session, btc) == Decimal('0.5')
        assert user2.volume_of_asset(self.session, btc) == Decimal('0.5')

        # Run it again. Must be idempotent.
        contract.expire(self.session)
        assert user1.volume_of_asset(self.session, btc) == Decimal('0.5')
        assert user2.volume_of_asset(self.session, btc) == Decimal('0.5')
 def post(self, *args, **kwargs):
     next_url = self.get_argument('next', '')
     username = self.get_argument('username', '')
     password = self.get_argument('password', '')
     login_correct = login_verify(self.db_session, username, password)
     if login_correct:
         self.session.set('USER', username)
         User.update_login_status(self.db_session, username)
         self.redirect(next_url)
     elif login_correct == None:
         self.render('signup.html', msg='你还未注册')
     else:
         self.render('login.html', next_url=next_url)
Example #10
0
 def register(self, password):
     """
     用户注册
     :param password:
     :return:
     """
     if not User.user_is_exists(username=self.username, session=self.db):
         User.add_user(username=self.username,
                       password=hashed(password),
                       session=self.db)
         return {'msg': 'ok'}
     else:
         return {'msg': '此用户已经存在'}
Example #11
0
def register():
    username = request.form.get('username')
    password = request.form.get('password')
    password_repeat = request.form.get('password_repeat')
    if not user or not password or not password_repeat:
        return jsonify(code=101, msg=u'参数不全')
    if password_repeat != password:
        return jsonify(code=101, msg=u'密码不一致')
    row = User(username=username)
    row.set_password(password)
    db.session.add(row)
    db.session.commit()
    return jsonify(code=200, msg=u'注册成功')
Example #12
0
    def test_normal_scenario_with_two_users(self):
        # First create some users
        user1 = User.create_user(self.session, "user1", "abcd")
        user2 = User.create_user(self.session, "user2", "abcd")

        # Make sure user1 has 1 BTC for later deposit into a futures contract
        btc = Asset.create_asset("BTC")
        user1.increase_volume_of_asset(self.session, btc, Decimal("1"))

        # Create a futures contract worth 1 BTC in +14 days
        contract, asset = FuturesContract.create_contract(
            self.session, user1, datetime.now() + timedelta(days=14), btc, Decimal("1"), "FUTURE", Decimal("100")
        )
        # This will fail if user1 has insufficient funds (i.e. < 1 BTC)
        assert contract is not None
        assert asset is not None
        self.session.commit()

        # Create an order for this contract (i.e. newly created asset)
        usd = Asset.create_asset("USD")
        ask_order = Order.create_order(
            self.session, user1, Decimal("20"), usd, contract, Decimal("50"), False, OrderType.limit_order.value
        )
        # Make sure we have enough funds
        assert ask_order is not None
        self.session.commit()

        # Put order into market
        assert put_order(self.session, ask_order) is None

        # Create a bid order from user2
        user2.increase_volume_of_asset(self.session, usd, Decimal("20"))
        bid_order1 = Order.create_order(
            self.session, user2, Decimal("20"), usd, contract, Decimal("50"), True, OrderType.limit_order.value
        )
        # Make sure we have enough funds
        assert bid_order1 is not None

        transaction = put_order(self.session, bid_order1)
        assert isinstance(transaction, Transaction)
        assert transaction.ask_order is ask_order
        assert transaction.bid_order is bid_order1

        contract.expire(self.session)
        assert user1.volume_of_asset(self.session, btc) == Decimal("0.5")
        assert user2.volume_of_asset(self.session, btc) == Decimal("0.5")

        # Run it again. Must be idempotent.
        contract.expire(self.session)
        assert user1.volume_of_asset(self.session, btc) == Decimal("0.5")
        assert user2.volume_of_asset(self.session, btc) == Decimal("0.5")
Example #13
0
def register(name, password, email):
    '''
    注册
    :param name: 用户名
    :param password: 密码
    :param email: 邮箱
    :return: ok/user is exists
    '''
    if User.exists_it(name):
        return 'user is exists'

    pw = hash_it(password)
    print(name, pw, password)
    User.add_user(name, pw, email)
    return 'ok'
Example #14
0
    def _gen_analytics(self):
        log.info('Hourly Analytic Generator Stated')

        hours = int(self.request.get('hours', 1))
        for h in reversed(xrange(hours)):
            log.info('Generation for hour %s', h)
            start = datetime.now().replace(minute=0, second=0,
                                           microsecond=0) - timedelta(hours=h)

            log.info('Start Time: %s', start)

            ana_count = 0
            orgs = Organization.query()
            for org in orgs.iter(keys_only=True, limit=3):
                log.info('Generating Analytics for %s', org.id())
                users = User.query(User.organization == org).order(
                    User.first_name)

                for usr in users.iter(keys_only=True, limit=3):
                    ana_count += self._create_analytic(start=start,
                                                       org=org,
                                                       usr=usr)

            ana_count += self._create_analytic(start=start)
            log.info(
                'Hourly Analytic Generator Finished: %s Analytics created',
                ana_count)
Example #15
0
    def get(self, verification_id):
        if not verification_id:
            return HttpErrorException.bad_request('no verification id given')

        if self.request.get('username') == '':
            return HttpErrorException.bad_request('no username given')

        user = User.get_by_id(self.request.get('username'))
        if not user:
            return HttpErrorException.bad_request('invilad username')

        if user.email_verification.verify_id == verification_id:
            user.email_verification.verified = True
            user.put()

            lr = tt_logging.construct_log(
                msg_short='User has verified their email',
                msg='User has verified their email: ' + user.email,
                log_type=tt_logging.USER, affected_user=user
            )
            log.info(lr['dict_msg']['msg'], extra=lr)

            self.redirect('/')
        else:
            return HttpErrorException.bad_request('invalid verification id')
Example #16
0
    def post(self, user_id=None):
        if not user_id:
            raise HttpErrorException.bad_request('no user id given')

        user = User.get_by_id(user_id)
        if not user:
            raise HttpErrorException.bad_request('invalid user id given')
        if user != self.user and not self.user.is_super_admin:
            lr = tt_logging.construct_log(
                msg_short='Non-Admin User try to Alter Another User\'s Billing',
                msg='User (%s) attemped to change another user\'s (%s) '
                    'billing information' % (self.user.key.id(), user.key.id()),
                log_type=tt_logging.SECURITY, request_user=self.user, affected_user=user,
                request=self.request
            )
            log.warning(lr['dict_msg']['msg'], extra=lr)
            raise HttpErrorException.forbidden()

        if self.json_request.get('subscribe'):
            pay_plan = self.json_request.get('subscribe')
            if user.is_billable_account():
                raise HttpErrorException.bad_request('user already has billable account')

            checkout_url = user.setup_billable_account(pay_plan)
            self.write_json_response({'checkout_url': checkout_url})
Example #17
0
    def get(self, memberkey, *args, **kwargs):
        member = User.getbykey(memberkey)
        context = {
            'member': member,
            }

        self.response.out.write(self.loadtemplate(context))
Example #18
0
    def test_cancel_contract(self):
        # Create a user and asset
        user = User.create_user(self.session, 'user', 'abcd')
        usd = Asset.create_asset('USD')
        self.session.add_all([user, usd])
        self.session.commit()

        # Add funds to user1 so that we can create a contract
        user.increase_volume_of_asset(self.session, usd, Decimal('1'))

        # Let this user create a contract
        contract, asset = FuturesContract.create_contract(
            self.session, user,
            datetime.now() + timedelta(days=14), usd, Decimal('1'), 'FUTURE',
            Decimal('100'))
        assert contract is not None
        assert asset is not None

        # Now, money have been withdrawn from user1's account
        assert user.volume_of_asset(self.session, usd) == Decimal('0')

        # Cancel the contract
        assert contract.cancel(self.session) is True
        assert inspect(contract).deleted is True
        assert user.volume_of_asset(self.session, usd) == Decimal('1')

        # OK, the contract is cancelled.
        # Now do the same thing, but this time, create an order and verify that the cancelled flag is set instead
        contract, asset = FuturesContract.create_contract(
            self.session, user,
            datetime.now() + timedelta(days=14), usd, Decimal('1'), 'FUTURE',
            Decimal('100'))
        assert contract is not None
        assert asset is not None
        assert user.volume_of_asset(self.session, usd) == Decimal('0')

        ask_order = Order.create_order(self.session, user, Decimal('20'), usd,
                                       contract, Decimal('50'), False,
                                       OrderType.limit_order.value)
        assert ask_order is not None
        assert user.volume_of_asset(self.session, asset) == Decimal('50')

        # Assert that we cannot cancel the contract if there are created orders
        assert contract.cancel(self.session) is False

        # Put order into market
        assert put_order(self.session, ask_order) is None

        # Assert that we cannot cancel the contract if there are orders in the market
        assert contract.cancel(self.session) is False

        # It should be possible to cancel this order
        assert ask_order.cancel(self.session) is True
        assert user.volume_of_asset(self.session, asset) == Decimal('100')

        # Check that order is in the expected state
        assert contract.cancel(self.session) is True
        assert inspect(contract).deleted is False
        assert contract.cancelled is True
Example #19
0
def authenticate(username,password):
    '''密码验证  防止用户 输入空 密码'''
    if username and password:
        hash_password =User.get_pass(username)
        if hash_password and hash_it(password)== hash_password:

            return True
    return False
Example #20
0
    def put(self, user=None):
        gc = GlobalConfig.get_configs()
        if not gc.allow_user_registration:
            self.redirect('/register/disabled/', abort=True)

        if self.json_request.get('organization'):
            return HttpErrorException.forbidden()

        User.new(self.json_request, request=self.request, worldshare_group=Group.get_worldshare_key())
        creds = GenericCredentials(self.json_request.get('username'), self.json_request.get('password'))
        if not creds.authenticate():
            raise HttpErrorException.bad_request('faild to authinicate')

        session = login(self.request, creds, User)
        self.response.set_cookie('auth_user', base64.b64encode(creds.username))
        self.response.set_cookie('user', creds.username)
        self.response.set_cookie('auth_token', session.token)
Example #21
0
    def put(self, user_id=None):
        if not self.user.is_admin:
            lr = tt_logging.construct_log(
                msg_short='Non-Admin User Try Create New User',
                msg='User (%s) attemped to create a new user' % (self.user.key.id()),
                log_type=tt_logging.SECURITY, request_user=self.user,
                request=self.request
            )
            log.warning(lr['dict_msg']['msg'], extra=lr)
            raise HttpErrorException.forbidden()

        if self.json_request.get('username'):
            org = None
            if self.json_request.get('organization'):
                org = Organization.get_by_id(self.json_request.get('organization'))

            User.new(self.json_request, verify_email=False, request=self.request,
                     worldshare_group=Group.get_worldshare_key(), organization=org)
Example #22
0
    def test_cancel_contract(self):
        # Create a user and asset
        user = User.create_user(self.session, "user", "abcd")
        usd = Asset.create_asset("USD")
        self.session.add_all([user, usd])
        self.session.commit()

        # Add funds to user1 so that we can create a contract
        user.increase_volume_of_asset(self.session, usd, Decimal("1"))

        # Let this user create a contract
        contract, asset = FuturesContract.create_contract(
            self.session, user, datetime.now() + timedelta(days=14), usd, Decimal("1"), "FUTURE", Decimal("100")
        )
        assert contract is not None
        assert asset is not None

        # Now, money have been withdrawn from user1's account
        assert user.volume_of_asset(self.session, usd) == Decimal("0")

        # Cancel the contract
        assert contract.cancel(self.session) is True
        assert inspect(contract).deleted is True
        assert user.volume_of_asset(self.session, usd) == Decimal("1")

        # OK, the contract is cancelled.
        # Now do the same thing, but this time, create an order and verify that the cancelled flag is set instead
        contract, asset = FuturesContract.create_contract(
            self.session, user, datetime.now() + timedelta(days=14), usd, Decimal("1"), "FUTURE", Decimal("100")
        )
        assert contract is not None
        assert asset is not None
        assert user.volume_of_asset(self.session, usd) == Decimal("0")

        ask_order = Order.create_order(
            self.session, user, Decimal("20"), usd, contract, Decimal("50"), False, OrderType.limit_order.value
        )
        assert ask_order is not None
        assert user.volume_of_asset(self.session, asset) == Decimal("50")

        # Assert that we cannot cancel the contract if there are created orders
        assert contract.cancel(self.session) is False

        # Put order into market
        assert put_order(self.session, ask_order) is None

        # Assert that we cannot cancel the contract if there are orders in the market
        assert contract.cancel(self.session) is False

        # It should be possible to cancel this order
        assert ask_order.cancel(self.session) is True
        assert user.volume_of_asset(self.session, asset) == Decimal("100")

        # Check that order is in the expected state
        assert contract.cancel(self.session) is True
        assert inspect(contract).deleted is False
        assert contract.cancelled is True
Example #23
0
def authenticate(username, password):
    """
    验证用户账号信息
    """
    if username and password:
        hash_pass = User.get_pass(username)
        if hash_pass and hash_it(password) == hash_pass:
            return True
    return False
Example #24
0
    def post(self, user_id=None):
        if not user_id:
            raise HttpErrorException.bad_request('No user id given')
        user = User.get_by_id(user_id)

        if not user:
            raise HttpErrorException.bad_request('invalid user id given')

        user.edit(self.request, self.json_request, self.user)
Example #25
0
    def get(self):
        email = self.request.get('email')
        if email == '':
            raise HttpErrorException.bad_request('no email given')

        user = User.query(User.email == email).get()
        if not user:
            raise HttpErrorException.bad_request('invalid email given')

        user.send_username_email()
Example #26
0
 def get(self, user_id=None):
     if user_id is not None:
         if user_id == 'anonymous':
             self.write_json_response({'username': '******'})
         else:
             user = User.get_by_id(user_id)
             if not user:
                 self.write_json_response({'username': '******'})
             else:
                 self.write_json_response({'username': '******'})
     else:
         user_id = self.request.get('username')
         if user_id is None or user_id == '' or user_id == 'anonymous':
             self.response.write('false')
         else:
             user = User.get_by_id(user_id)
             if not user:
                 self.response.write('true')
             else:
                 self.response.write('false')
Example #27
0
    def getuser(self):
        if hasattr(self, '_user'):
            user = self._user
        else:
            user = users.get_current_user()
            if user:
                from models.account import User
                query = User.query(User.userid == user.user_id())
                user_obj = query.get()
                if user_obj:
                    user = user_obj
                else:
                    # Don't bother to save to the database until they change
                    # some settings.
                    user = User(userid=user.user_id(),
                                email=user.email())

            self._user = user

        return user
Example #28
0
def step_impl(context):
    context.email = '*****@*****.**'
    context.password = '******'

    with context.app.app_context():
        context.user = User(
            email=context.email,
            password="******",
        )
        db.session.add(context.user)
        db.session.commit()
Example #29
0
def step_impl(context):
    context.email = '*****@*****.**'
    context.password = '******'

    with context.app.app_context():
        context.user = User(
            email=context.email,
            password=context.password,
        )
        db.session.add(context.user)
        db.session.commit()
Example #30
0
 def authenticate(self, password):
     """
     用户名和密码验证
     :param password:  密码
     :return: True 或者 False  True代表验证通过,False代表验证没过
     """
     hash_password = hashed(password)
     if hash_password == User.get_password(username=self.username,
                                           session=self.db):
         return True
     else:
         return False
Example #31
0
def authenticate(username, password, db_session):
    """
    校验用户名和密码是否符合记录
    :param username:
    :param password:
    :return:
    """
    if username and password:
        hashed_password = User.get_pass(username, db_session)
        return hashed(password) == hashed_password
    else:
        return False
def add_post_for(username, img_url, thumb_url):
    """
    posts表增加数据
    :param username:
    :param img_url:
    :param thumb_url:
    :return:
    """
    user = User.query(username)
    post = Post(img_url=img_url, user=user, thumb_url=thumb_url)
    session.add(post)
    session.commit()
    return post
Example #33
0
    def get(self, *args, **kwargs):
        members = {}
        for rank in self.rankmodel.hierarchy():
            query = User.query(User.rankkey == rank.key)
            members[rank.name] = {}
            members[rank.name]['results'] = query
            members[rank.name]['hasmembers'] = query.count(1) > 0

        context = {
            'members': members,
            'hierarchy': self.rankmodel.hierarchy(),
        }
        self.response.out.write(self.loadtemplate(context))
def run():
    gc = GlobalConfig.get_configs()
    users = User.query()

    for user in users.iter():
        log.info('Check ' + user.username + ' account status')

        if runtime.is_shutting_down():
            break

        if user.account_status == payment.TRIAL or user.account_status == payment.TRIAL_EXPIRED:
            expire_date = user.account_expire_date + timedelta(days=gc.trial_expiring_grace_period)
            days_till_expire = (expire_date - datetime.now()).days
            log.info(user.username + ' account expires in ' + str(days_till_expire))

            if days_till_expire in gc.trial_expiring_email_intervales:
                log.info(user.username + '\'s trial expires in ' + str(days_till_expire) + ' days')
                mail.send_trial_ending_email(days_till_expire, user, gc)
            elif days_till_expire == 0:
                log.info(user.username + '\'s trial has expired')
                user.account_statue = payment.TRIAL_EXPIRED
                user.put()
                mail.send_trial_ended_email(user, gc)
            elif days_till_expire * -1 in gc.trial_expired_email_intervales:
                user.account_statue = payment.TRIAL_EXPIRED
                user.put()
                mail.send_after_trial_ended_email(days_till_expire * -1, user, gc)

        elif user.account_status != payment.ORG and user.account_status != payment.SUB:
            expire_date = user.account_expire_date + timedelta(days=gc.acct_expiring_grace_period)
            days_till_expire = (expire_date - datetime.now()).days
            log.info(user.username + ' account expires in ' + str(days_till_expire))

            if days_till_expire in gc.acct_expiring_email_intervales and user.account_status != payment.SUB:
                log.info(user.username + '\'s account expires in ' + str(days_till_expire) + ' days')
                mail.send_account_expiring_email(days_till_expire, user, gc)
            elif days_till_expire == 0:
                log.info(user.username + '\'s account has expired')
                user.account_statue = payment.EXPIRED
                user.put()
                mail.send_account_expired_email(user, gc)
            elif days_till_expire * -1 in gc.acct_expired_email_intervales:
                user.account_statue = payment.EXPIRED
                user.put()
                mail.send_after_account_expired_email(days_till_expire * -1, user, gc)

        else:
            log.info('Nothing to check')

    if runtime.is_shutting_down():
        log.warning('Had to stop notifing users, backend receaved shut donw request')
Example #35
0
    def _distribute_spectra_points(self):
        q = User.query()
        users = []
        for user in q.iter():
            print user.username, user.spectra_count

            user.spectra_count += 100
            users.append(user)

            if len(users) > 1000:
                ndb.put_multi(users)
                users = []

        ndb.put_multi(users)
Example #36
0
    def test_insufficient_funds(self):
        # Create a user and asset
        user = User.create_user(self.session, "user", "abcd")
        usd = Asset.create_asset("USD")
        self.session.add_all([user, usd])
        self.session.commit()

        # This user creates a contract without proper funding
        contract, asset = FuturesContract.create_contract(
            self.session, user, datetime.now() + timedelta(days=14), usd, Decimal("1"), "FUTURE", Decimal("100")
        )
        # Assert that this does not work
        assert contract is None
        assert asset is None
Example #37
0
 def get(self, memberkey):
     target = User.getbykey(memberkey)
     return self.render(receiver=target)
Example #38
0
 def post(self, memberkey):
     receiver = User.getbykey(memberkey)
     return self.saveform(receiver=receiver)
Example #39
0
 def get(self, memberkey, *args, **kwargs):
     member = User.getbykey(memberkey)
     self.user.following.remove(member)
     self.user.put()
     self.redirect('/members/%s' % memberkey)
Example #40
0
def _change_password(user, password):
    user.token = create_token(16)
    user.passwd = User.create_password(password)
    account_login(user)
    db.session.add(user)