예제 #1
0
파일: tests.py 프로젝트: m2mbr/smartlunch
    def test_roles(self):
        u1 = User(username='******', email='*****@*****.**')
        u2 = User(username='******', email='*****@*****.**')

        r1 = Role(name='Admin')
        r2 = Role(name='Operator')
        r3 = Role(name='Client')

        self.db.session.add(u1)
        self.db.session.add(u2)
        self.db.session.add(r1)
        self.db.session.add(r2)
        self.db.session.add(r3)
        self.db.session.commit()

        u1 = User.find_by_username('john')
        u2 = User.find_by_username('susan')
        self.assertEqual(u1.roles.all(), [])
        self.assertEqual(u2.roles.all(), [])

        u1.add_role(r1)
        u2.add_role(r2)
        u2.add_role(r3)
        self.db.session.add(u1)
        self.db.session.add(u2)
        self.db.session.commit()

        # John has exactly 1 role?
        self.assertEqual(u1.roles.count(), 1)
        # John has the 'Admin' role?
        self.assertEqual(u1.roles.first().name, 'Admin')
        # Susan has exactly 2 roles?
        self.assertEqual(u2.roles.count(), 2)
        # Susan has the role 'Client'?
        self.assertTrue(u2.has_role(r3))
예제 #2
0
def yelp_business_match():
    if 'Authorization' not in request.headers:
        abort(401)

    if not User().verify_key(request.headers.get('Authorization')):
        abort(401)

    if not request.is_json:
        abort(400)

    request_data = request.get_json(silent=True)
    if request_data is None:
        abort(400)

    if 'name' not in request_data or 'street_address' not in request_data or 'city' not in request_data \
            or 'state' not in request_data or 'country' not in request_data:
        return make_response(jsonify({'error': 'Missing required attributes'}),
                             400)

    user_id = User().get_user_id(request.headers.get('Authorization'))

    YelpData().yelp_request(yelp_request=request_data, user_id=user_id)

    data = YelpData().get_business_match_data(
        user_id=user_id,
        name=request_data['name'],
        address1=request_data['street_address'],
        city=request_data['city'],
        state=request_data['state'],
        country=request_data['country'])

    return jsonify(data)
def general_user(session):
    try:
        general_user = User.query.filter_by(
            google_id="*****@*****.**").first()
        assert not general_user

        general_user = User(google_id="*****@*****.**",
                            en_name="Hammington",
                            ko_name="Hee San",
                            entry_date=datetime.datetime(2017, 1, 1),
                            admin=False)
        session.add(general_user)

    except BaseException:
        general_user = User(google_id="*****@*****.**",
                            en_name="Hammington",
                            ko_name="Hee San",
                            entry_date=datetime.datetime(2017, 1, 1),
                            admin=False)
        general_user.google_id = str(random.randint(
            1, 1000)) + "_" + general_user.google_id
        session.add(general_user)

    session.commit()
    return general_user
    def setUp(self):
        self.app = create_app('testing')
        self.test_app = self.app.test_client()
        with self.app.app_context():
            db.create_all()

        user = User(first_name="Jimmy",
                    last_name="Cocopuff",
                    email="*****@*****.**",
                    password="******")
        with self.app.app_context():
            db.session.add(user)
            db.session.commit()

        user = User(first_name="Jimmy",
                    last_name="Cocobeans",
                    email="*****@*****.**",
                    password="******")
        with self.app.app_context():
            db.session.add(user)
            db.session.commit()

        item = Item(
            user_id=1,
            title="Tea Set",
            description="Antique Tea set",
            price=140.00,
            category="furniture",
            charity="Big Cat Rescue",
            charity_url="http://www.thisisatotallyligiturl.com",
            charity_score=4,
            charity_score_image=
            "https://d20umu42aunjpx.cloudfront.net/_gfx_/icons/stars/4stars.png",
            image="img.ul",
            auction_length=5)
        with self.app.app_context():
            db.session.add(item)
            db.session.commit()

        item = Item(
            user_id=1,
            title="Rocking Chair",
            description="Vintage wood rocking chair",
            price=40.00,
            category='furniture',
            charity='Big Cat Rescue',
            charity_url="http://www.thisisatotallyligiturl.com",
            charity_score=4,
            charity_score_image=
            "https://d20umu42aunjpx.cloudfront.net/_gfx_/icons/stars/4stars.png",
            image='img.ul',
            auction_length=5)
        with self.app.app_context():
            db.session.add(item)
            db.session.commit()
예제 #5
0
    def test_users_inserts(self):
        u1 = User(email='*****@*****.**')
        u1.set_password('123')
        u2 = User(email='*****@*****.**')
        u2.set_password('123')
        u3 = User(email='*****@*****.**')
        u3.set_password('123')

        self.db.session.add(u1)
        self.db.session.add(u2)
        self.db.session.commit()

        self.db.session.add(u3)
        self.assertRaises(IntegrityError, self.db.session.commit)
        self.db.session.rollback()
예제 #6
0
    def test_get_user_by_id(self):
        user1 = User(user_name="Princess.Kopf", email="*****@*****.**")
        user2 = User(user_name="ABD", email="*****@*****.**")
        with self.app.app_context():
            db.session.add(user1)
            db.session.add(user2)
            db.session.commit()

        response = self.test_app.get('/api/users/1', follow_redirects=True)

        # Assert response is 200 OK.
        self.assertEquals(response.status, "200 OK")
        payload = json.loads(response.data)
        self.assertEquals(payload['user_name'], "Princess.Kopf")
        self.assertEquals(payload['email'], "*****@*****.**")
예제 #7
0
def another_admin(session):
    user = User(google_id="*****@*****.**", en_name="test_name", admin=True)
    session.add(user)
    session.commit()

    assert User.query.get(user.id).admin == True
    return user
def user_is_general(session):
    user = User(google_id="*****@*****.**", en_name="name", admin=False)
    session.add(user)
    session.commit()

    assert user.admin == False
    return user
예제 #9
0
def test_client_with_db():
    flask_app = create_app('config.Test')

    # Create a test client using the Flask application configured for testing
    with flask_app.test_client() as testing_client:
        # Establish an application context
        with flask_app.app_context():
            db.create_all()

            # Insert user data
            user = User('*****@*****.**', generate_password_hash('password'))
            db.session.add(user)

            # Insert insurance data
            insurances = [
                Insurance('Private Health Insurance', 300.00),
                Insurance('Household Contents Insurance', 10.00),
                Insurance('Public Health Insurance', 200.00),
                Insurance('Expat Health Insurance', 85.00),
                Insurance('Legal Insurance', 25.00),
                Insurance('Life Insurance', 20.00)
            ]
            db.session.bulk_save_objects(insurances)

            # Commit the changes for the users
            db.session.commit()

            yield testing_client
            db.drop_all()
예제 #10
0
파일: user.py 프로젝트: m2mbr/smartlunch
 def post(self):
     data = request.get_json()
     user = User(username=data['username'])
     user.set_password(data['password'])
     db.session.add(user)
     db.session.commit()
     return "User " + user.username + " has been saved", 201
예제 #11
0
def github_auth():
    """
    Github OAuth, redirects to github OAuth and obtains token using client id and secret
    :return:
    """
    if 'code' in request.args:
        github_url = 'https://github.com/login/oauth/access_token'
        data = {'client_id': client_id,
                'client_secret': client_secret,
                'code': request.args.get('code'),
                }
        headers = {'Accept': 'application/json'}
        r = requests.post(github_url, data=data, headers=headers)
        results = r.json()

        print(results)
        # Note: Once values are added to session, Flask will turn these into
        # a cookie that will be stored on the client side
        # (using set-cookie on header since cookies is not a valid header on
        # a response?)
        # Because of the secret key, values are stored with cryptography

        session['username'] = get_username(results.get('access_token'))
        session['code'] = request.args.get('code')

        # Import the user model and create a new instance of the object
        users = database.all('User')
        for user in users.values():
            if user.user_name == session['username']:
                session['id'] = user.id
                return redirect(url_for('user.homepage'))
        new_user = User(**({'user_name': session.get('username'), 'level_id': '100'}))
        new_user.save()
        session['id'] = new_user.id
        return redirect(url_for('user.homepage'))
예제 #12
0
    def post(self):
        current_user = get_jwt_identity()
        if current_user['role'] != 'system_admin':
            return {
                'status': STATUS_CODE['AUTH'],
                'message': 'Permission denied'
            }
        args = user.parse_args()
        isExists = User.objects(email=args['email']).first()
        if isExists:
            return {
                'status': STATUS_CODE['ERROR'],
                'message': 'Email already exists'
            }

        isExistsAccountNumber = User.objects(
            account_number=args['account_number']).first()
        if isExistsAccountNumber:
            return {
                'status': STATUS_CODE['ERROR'],
                'message': 'Account number already exists'
            }
        User(account_number=args['account_number'],
             balance=args['balance'],
             firstname=args['firstname'],
             lastname=args['lastname'],
             age=args['age'],
             gender=args['gender'],
             address=args['address'],
             employer=args['employer'],
             email=args['email'],
             city=args['city'],
             state=args['state']).save()
        return {'status': STATUS_CODE['SUCCESS'], 'message': 'Successfully'}
예제 #13
0
def user_data_to_ucenter():
    db.engine.execute("ALTER TABLE %s RENAME TO %s " %
                      (User.__tablename__, Userold.__tablename__))
    db.create_all()

    user_olds = Userold.query.all()
    for user_old in user_olds:
        user = User()
        user.id = user_old.id
        user._active = user_old._active
        user.username = user_old.username
        user.email = user_old.email
        user.title = user_old.title
        user.avatar = user_old.avatar
        user.created_on = user_old.created_on
        user.updated_on = user_old.updated_on
        user.created_by = user_old.created_by
        user.updated_by = user_old.updated_by
        db.session.add(user)

        store_id = user_old.store_id
        store_name = user_old.storename
        roles = user_old.roles
        type = user_old.type
        user.update_permission_auth(store_id, store_name, type, roles)
    db.session.commit()
예제 #14
0
def set_default():

    record = User().query_record(id=1)

    if record: return {'code': 400, 'message': 'db has initialized'}, 400

    default_role = {
        'name': 'admin',
        'alias': '管理员',
        'status': 1,
    }

    role = Role.create_record(**default_role)

    default_user = {
        'name': 'David',
        'pwd': '123456',
        'status': 1,
        'role_id': 1
    }

    user = User.create_record(**default_user)

    return {
        'user': user.to_dict(rules=('-pwd', '-role')),
        'role': role.to_dict(rules=('-users', )),
    }, 201
예제 #15
0
def sign_up():
    data = request.args
    email = data['email']
    password = data['password']
    user = User.find_user_by_email(email)

    if not user:
        try:
            user = User(email=email, password=password, username=email)

            db.session.add(user)
            db.session.commit()

            identity = {'email': user.email, 'name': user.username}

            access_token = create_access_token(identity=identity)
            response_object = {
                'status': 'success',
                'message': 'Successfully signed up',
                'auth_token': access_token
            }
            return make_response(jsonify(response_object)), 201
        except Exception as e:
            response_object = {
                'status': 'fail',
                'message': 'Could not create account',
                'error': ','.join(e.args)
            }

            return make_response(jsonify(response_object)), 500
    else:
        response_object = {'status': 'fail', 'message': 'User already exists'}
        return make_response(jsonify(response_object)), 400
예제 #16
0
def signup():
    '''
    Display the sign up form on GET and sign up on POST
    '''
    if request.method == 'POST':
        email = request.form.get('email')
        password = request.form.get('password')
        name = request.form.get('name')

        # Check that all fields are not null
        if not email or not password or not name:
            flash('Please fill in all fields.')
            return render_template('signup.html')

        # Check if the user already exists
        user = User.query.filter_by(email=email).first()
        if user:
            flash('User already exists.')
            return render_template('signup.html')

        # Create the user
        new_user = User(email=email, name=name)
        new_user.set_password(password)
        new_user.create_new_user()

        # Visit the login page
        return redirect(url_for('authentication.login'))

    # Render the sign up page
    else:
        return render_template('signup.html')
예제 #17
0
def signup(data: dict) -> typing.NoReturn:
    user_id = data.get('user_id')
    name = data.get('name')
    password = data.get('password')

    if not name or not name or not password:
        raise SignupException('空欄があります')

    user = User.query.filter_by(user_id=user_id).first()
    if user:
        raise SignupException('このIDは既に使われています')

    if not user_id.isalnum():
        raise SignupException('ユーザ名は英数字のみにして下さい')

    required_password_length = 1
    if len(password) < required_password_length:
        raise SignupException(
            f'パスワードは {required_password_length} 文字以上にして下さい')

    new_user = User(user_id, name, password)

    try:
        db.session.add(new_user)
        db.session.commit()
    except Exception:
        db.session.rollback()
        raise SQLAlchemyError
    finally:
        db.session.close()
예제 #18
0
def register():
    form = RegistrationForm(request.form, meta={'locales': ['fa']})
    if request.method == 'POST' and form.validate():
        plain_email = re.match(re.compile("(.*)(@.*)"), form.email.data)
        user_email = plain_email.group(1).replace('.',
                                                  '') + plain_email.group(2)

        new_user = User(email=user_email, password=form.password.data)
        db.session.add(new_user)
        token = new_user.generate_confirmation_token()
        url = url_for('user.confirm', token=token, _external=True)
        try:
            email.send(
                new_user.email, 'Confirm Your Account',
                render_template('user/email/confirm.html',
                                user=new_user,
                                url=url))
            db.session.commit()
            new_user.add_ability(Abilities.TYPICAL)
        except ConnectionError:
            flash(
                u'.ارسال ایمیل تایید حساب کاربری با مشکل روبه رو شد.مجددا تلاش کنید'
            )
            db.session.rollback()
            return render_template('user/register.html', form=form)
        flash(u'.یک ایمیل تایید حساب کاربری برای شما ارسال شده است')
        return redirect(url_for('main.index'))
    return render_template('user/register.html', form=form)
예제 #19
0
    def post(self):
        try:
            data = parser.parse_args()
            if User.find_by_username(data['email']):
                raise InvalidInput(
                    "User {} already exists".format(data['email']))
            new_user = User(
                email=data['email'],
                first_name=data['first_name'],
                last_name=data['last_name'],
                password=User.generate_hash(data['password']),
                verified=False
            )
            new_user.save_to_db()
            send_mail_to_verify(new_user)
            return success(
                {'message': 'User {} was created'.format(data['email']),
                 'success': True})

        except SQLAlchemyError as e:
            db.session.rollback()
            return error({"success": False, 'message': str(e)})

        except InvalidInput as e:
            return error({"success": False, "message": str(e)})
예제 #20
0
 def get_user(email):
     cursor = DBHelper.mysql.get_db().cursor()
     sql = 'select * from user where email=%s'
     cursor.execute(sql, email)
     user = cursor.fetchone()
     if user:
         return User(user)
     return None
예제 #21
0
    def test_password_recovery(self):
        u1 = User(username='******', email='*****@*****.**')
        db.session.add(u1)
        db.session.commit()

        token = u1.get_reset_password_token()
        verified_user = User.verify_reset_password_token(token)
        self.assertEqual(u1, verified_user)
예제 #22
0
파일: bmw.py 프로젝트: sungitly/isr
def bmw_save_user(bmw_user_json):
    result = bmw_user_json['content']
    user = User.find(result['id'])
    if user is None:
        user = User()
    user.from_auth(result)
    user.save()
    return user
예제 #23
0
파일: test_api.py 프로젝트: sungitly/isr
def create_user(data):
    user_data = data['user']
    user = User(username=user_data['username'])
    db.session.add(user)

    for p in data['store_user_role_scopes']:
        user.update_permission(p)
    db.session.commit()
예제 #24
0
    def post(self):
        args = user_post_parser.parse_args()

        user = User(**args)
        db.session.add(user)
        db.session.commit()

        return user
예제 #25
0
 def get_user_by_name(username):
     cursor = DBHelper.mysql.get_db().cursor()
     sql = 'select * from user where username=%s'
     cursor.execute(sql, username)
     user = cursor.fetchone()
     if user:
         return User(user)
     return None
예제 #26
0
def auth_create():
    form = CreateUserForm(request.form)
    if not form.validate():
        return render_template("auth/newform.html", form = form)
    user = User(form.username.data, form.password.data)
    db.session().add(user)
    db.session().commit()
    login_user(user)
    return redirect(url_for("index"))
예제 #27
0
    def test_add_note(self):
        u1 = User(username='******', email='*****@*****.**')
        db.session.add(u1)
        db.session.commit()
        self.assertEqual(u1.notes.count(), 0)

        u1.add_note('test title', 'test description')
        self.assertEqual(u1.notes.count(), 1)
        self.assertEqual(u1.notes.filter_by(id=1).first().title, 'test title')
예제 #28
0
파일: app.py 프로젝트: Droliven/SHUhelper
def configure_manger_accounts(app):
    # [todo] configure super admin
    plugins = Plugin.objects()
    for plugin in plugins:
        user = User.objects(card_id=plugin.identifier).first()
        if user is None:
            user = User(card_id=plugin.identifier,
                        name=plugin.identifier,
                        activated=True,
                        robot=True)
            user.save()
    user = User.objects(card_id='00000001').first()
    if user is None:
        user = User(card_id='00000001',
                    name='匿名用户',
                    activated=True,
                    robot=True)
        user.save()
예제 #29
0
def sign_up():
    user = User(**sign_up_user_params())
    print(user.name)
    if user.save():
        access_token = create_access_token(identity=user.id)
        refresh_token = create_refresh_token(identity=user.id)
        return jsonify(access_token=access_token, refresh_token=refresh_token)
    else:
        return jsonify({"status": "usuário inválido"}), 404
예제 #30
0
def query_user (uid):

  try: 
    record = User().query_record(uid) 

    return jsonify(record.to_dict())

  except:
    return 'query failed', 404