Exemple #1
0
def put_user(user_id):
    data = {
        'password': request.form['password'],
        'level': request.form['level']
    }
    print(data)
    User.modify_user(user_id, data)
    return jsonify({}), 200
Exemple #2
0
def create_user():
    user = {'id': request.form['id'],
            'username': request.form['username'],
            'password': request.form['password'],
            'level': request.form['level'],
            }
    User.create_user(user)
    return jsonify({}), 200
Exemple #3
0
def login():
    print('hehe' * 10, request.args, request.form)
    (username, password) = (request.form['username'], request.form['password'])
    is_user = User.verify_user(username, password)
    if is_user:
        user = User.get_user_by_name(username)
        return jsonify({
            '_id': user['_id'],
            'name': user['name'],
            'level': user['level']
        }), 200
    else:
        return json.dumps({'msg': '账号和密码不匹配', 'errorCode': 'error_args'}), 401
Exemple #4
0
    async def post(self):
        try:
            data = await self.request.json()
        except:
            raise exceptions.InvalidRequestException('No json send')

        context = {
            'db_session': self.request.db_session,
            'ws_session': {'tz': data.get('user_timezone')},
            'method': 'create',
            'queue': self.request.app.queue
        }

        # INIT USER
        user = User()
        context['data'] = data
        sane_data = await user.sanitize_data(context)
        context['data'] = sane_data
        await user.validate_and_save(context)

        # SET SESSION
        await set_session(user, self.request)
        session = await get_session(self.request)
        session['tz'] = data.get('user_timezone')

        context['method'] = 'read'
        context['user'] = user
        context['ws_session'] = session
        resp_data = {
            'success': True,
            'user': await user.serialize(context),
            'token': session['csrf_token']
        }
        return web.json_response(resp_data)
Exemple #5
0
def create_new_user(email, password, nickname, age):

    new_user = User(email=email,
                    password=generate_password_hash(password),
                    nickname=nickname,
                    age=age)

    session.add(new_user)
    session.commit()
Exemple #6
0
 def create_user(self, data=user):
     '''
     Function that presists a User in the database for the test
     '''
     user = User(
         email=data['email'],
         name=data['name'],
         surname=data['surname'],
         admin=data['admin'],
         admin_privileges_by=data['admin_privileges_by'],
         created_by=data['created_by'],
         modified_by=data['modified_by'],
         created_at=data['created_at'],
         modified_at=data['modified_at'],
         is_deleted=data['is_deleted'],
     )
     user.set_password('1234')
     db.session.add(user)
     db.session.flush()
Exemple #7
0
def sign_up(email, password, name, major):
    origin_user = session.query(User).filter(User.email == email).first()

    if origin_user:
        abort(409, "this email is already in use")
    else:
        add_user = User(email=email,
                        password=generate_password_hash(password),
                        name=name,
                        major=major,
                        email_status=1)
        session.add(add_user)
        session.commit()

        return {"message": "success"}, 201
    def on_post(self, req, res):
        # session = req.context['session']
        user_req = req.context['data']
        # user_req = args
        if user_req:
            user = User()

            mongo_conn = initMongoDBConn(mongodb_collection)

            account = mongo_conn['account'].find_one(
                {'login': user_req['login'].lower()})

            if account is not None:
                status_code = (
                    falcon.HTTP_200,
                    404,
                )
                msg = 'Your login is in base, no need to register'
                res.body = dumps({
                    'status': status_code[1],
                    'msg': msg,
                })
                return

            user.login = user_req['data']['login']
            user.email = user_req['data']['email']
            user.password = hash_password(
                user_req['data']['password']).decode('utf-8')
            user.info = user_req['data']['info'] if 'info' in user_req else None
            sid = uuid()
            user.sid = sid
            user.token = encrypt_token(sid).decode('utf-8')
            # session.add(user)
            id = self.__add_to_mongo(user_req['data'])
            self.on_success(res, None, id)

            'A way to serve static resources via Falcon'
            # res.content_type = 'text/html'
            # with open('index.html', 'r') as f:
            #     res.body = f.read()
        else:
            raise AssertionError(req.context['data'])
Exemple #9
0
    async def post(self):
        try:
            data = await self.request.json()
        except:
            raise exceptions.InvalidRequestException('No json send')

        context = {
            'db_session': self.request.db_session,
            'ws_session': {'tz': data.get('user_timezone')},
            'method': 'create',
            'queue': self.request.app.queue
        }

        {%- if cookiecutter.closed_registration == 'y' %}
        # ClOSED REGISTRATION
        registration_token = data.get('registration_token')
        if registration_token != \
                config.get('registration_token'):
            raise exceptions.InvalidRegistrationTokenException()
        {%- endif %}

        # INIT USER
        user = User()
        context['data'] = data
        sane_data = await user.sanitize_data(context)
        context['data'] = sane_data
        await user.validate_and_save(context)

        # SET SESSION
        await set_session(user, self.request)
        session = await get_session(self.request)
        session['tz'] = data.get('user_timezone')

        context['method'] = 'read'
        context['user'] = user
        context['ws_session'] = session
        resp_data = {
            'success': True,
            'user': await user.serialize(context),
            'token': session['csrf_token']
        }
        return web.json_response(resp_data)
Exemple #10
0
            'password': '******'
        }, {
            'name': 'admin',
            'email': '*****@*****.**',
            'password': '******',
            'role': 'admin'
        }, {
            'name': 'disabled',
            'email': '*****@*****.**',
            'password': '******',
            'enable': False
        }
    ]

    for user_data in users:
        user = User()
        context = {
            'db_session': session,
            'method': 'create',
            'data': user_data
        }

        loop.run_until_complete(user.validate_and_save(context))
        if user.name == 'test':
            for index in range(40):
                notification = Notification()
                notification_data = {
                    'user_uid': user.get_uid(),
                    'message': 'Test {index}',
                    'target_url': '/profile',
                    'template_data': {
Exemple #11
0
def client():
    loop = asyncio.get_event_loop()
    asyncio.set_event_loop(loop)

    config = {
        "env": "test",
        "mongo_database_name": "webbase_test",
        "redis_database": 13,
        "mongo_host": "127.0.0.1",
        "server_port": 1337,
        "server_host": "localhost"
    }

    drop_database(config.get('mongo_database_name'),
                  config.get('redis_database'))

    _, _, app = loop.run_until_complete(init(loop, config))

    with DbSessionContext(config.get('mongo_database_name')) as session:

        # INSERT DUMMY DATA
        users = [{
            'name': 'test',
            'email': '*****@*****.**',
            'email_validation_token': '123456',
            'password': '******'
        }, {
            'name': 'to.disable',
            'email': '*****@*****.**',
            'email_validation_token': '1337',
            'password': '******'
        }, {
            'name': 'admin',
            'email': '*****@*****.**',
            'password': '******',
            'role': 'admin'
        }, {
            'name': 'disabled',
            'email': '*****@*****.**',
            'password': '******',
            'enable': False
        }]

        notifications = [{
            'user_uid': None,
            'message': 'Test 1'
        }, {
            'user_uid': None,
            'message': 'Test 2'
        }, {
            'user_uid': None,
            'message': 'Test 3'
        }, {
            'user_uid': None,
            'message': 'Test 4',
            'seen': True
        }]

        for user_data in users:
            user = User()
            context = {
                'db_session': session,
                'method': 'create',
                'data': user_data
            }

            loop.run_until_complete(user.validate_and_save(context))

            context = {
                'db_session': session,
                'method': 'create',
                'data': {
                    'user_uid': user.get_uid()
                }
            }
            resetpasswordtoken = Resetpasswordtoken()
            loop.run_until_complete(
                resetpasswordtoken.validate_and_save(context))
            for notification_data in notifications:
                notification = Notification()
                notification_data['user_uid'] = user.get_uid()

                context = {
                    'db_session': session,
                    'method': 'create',
                    'data': notification_data
                }

                loop.run_until_complete(
                    notification.validate_and_save(context))

    def login(self, email, password='******'):
        self.post_json('/api/login', {
            'email': email,
            'password': password,
            'token': self.__token__
        })
        with DbSessionContext(
                self.config.get('mongo_database_name')) as session:
            user = session.query(User)\
                .filter(User.email == email).one()

        return user

    client = TestApp(app)
    client.config = config
    client.login = types.MethodType(login, client)

    # NOTE Always do an /api/get_session to init the session correctly
    data = {'user_timezone': 'Australia/Sydney'}
    response = client.post_json('/api/get_session', data)
    client.__token__ = response.json['token']

    return client
Exemple #12
0
def delete_user(user_id):
    User.delete_user(user_id)
    return jsonify({}), 200