コード例 #1
0
ファイル: utils.py プロジェクト: felbinger/PythonFlaskLogin
    def __init__(self, app, client):
        self.app = app
        self.client = client
        self.db = client.db

        with self.app.app_context():
            if not Role.query.filter_by(name="admin").first():
                admin_role = Role(name="admin", description="Administrator")
                self.db.session.add(admin_role)
                if not User.query.filter_by(username="******").first():
                    admin_user = User(username='******',
                                      email='*****@*****.**',
                                      password='******',
                                      role=admin_role,
                                      totp_enabled=False)
                    self.db.session.add(admin_user)
            if not Role.query.filter_by(name="user").first():
                user_role = Role(name="user", description="User")
                self.db.session.add(user_role)
                if not User.query.filter_by(username="******").first():
                    normal_user = User(username='******',
                                       email='*****@*****.**',
                                       password='******',
                                       role=user_role,
                                       totp_enabled=False)
                    self.db.session.add(normal_user)
            self.db.session.commit()
コード例 #2
0
def _generate_default(app, client):
    db = client.db
    with app.app_context():
        if len(Role.query.all()) < 2:
            if not Role.query.filter_by(name="admin").first():
                admin = Role(name="admin", description="Administrator")
                db.session.add(admin)
            if not Role.query.filter_by(name="user").first():
                user = Role(name="user", description="User")
                db.session.add(user)
            db.session.commit()
コード例 #3
0
def _create_solved_dummy_challenge(app, client):
    db = client.db
    with app.app_context():
        _id = str(uuid4())
        role = Role.query.filter_by(name="admin").first()
        if not role:
            role = Role(name='admin', description='Administrator')
        user = User.query.filter_by(username="******").first()
        if not user:
            user = User(username='******',
                        email='*****@*****.**',
                        password='******',
                        role=role)
        cat = Category.query.filter_by(name='hacking').first()
        if not cat:
            cat = Category(name='hacking', description='Hacking')
            db.session.add(cat)
            db.session.commit()
        chall = Challenge(name=_id,
                          description='Description2',
                          flag='TMT{' + _id + '}',
                          category=cat,
                          points=0)
        solve = Solve(user=user, challenge=chall)
        db.session.add(role)
        db.session.add(user)
        db.session.add(chall)
        db.session.add(solve)
        db.session.commit()
        return {'id': chall.id, 'flag': 'TMT{' + _id + '}'}
コード例 #4
0
def _create_dummy_role(app, client, name):
    role = Role(name=name, description='test')
    db = client.db
    with app.app_context():
        db.session.add(role)
        db.session.commit()
    return role
コード例 #5
0
def test_create_role(app, client):
    db = client.db
    role = Role(name='admin', description='Administrator')
    with app.app_context():
        db.session.add(role)
        db.session.commit()
        assert len(Role.query.all()) == 1
コード例 #6
0
def test_create_role(app, client):
    db = client.db
    with app.app_context():
        role = Role(name='admin', description='Administrator')
        db.session.add(role)
        db.session.commit()
        assert len(Role.query.all()) == 1

        queried_role = Role.query.filter_by(name='admin').first()
        assert isinstance(queried_role, Role)
        assert queried_role.description == 'Administrator'
コード例 #7
0
def _create_dummy_user(app, client):
    role = Role(name='admin', description='Administrator')
    user = User(username='******',
                email='*****@*****.**',
                password='******',
                role=role)
    db = client.db
    with app.app_context():
        db.session.add(role)
        db.session.add(user)
        db.session.commit()
コード例 #8
0
def _create_dummy_user(app, client):
    role = Role(name='supporterin', description='Supporterin')
    user = User(username='******',
                email='*****@*****.**',
                password='******',
                role=role)
    db = client.db
    with app.app_context():
        db.session.add(role)
        db.session.add(user)
        public_id = user.public_id
        db.session.commit()
    return public_id
コード例 #9
0
def test_create_message(app, client):
    db = client.db
    role = Role(name='admin', description='Administrator')
    user = User(username='******',
                email='*****@*****.**',
                password='******',
                role=role)
    msg = Message(subject="test", message="test", user=user)
    with app.app_context():
        db.session.add(role)
        db.session.add(user)
        db.session.add(msg)
        db.session.commit()
コード例 #10
0
def test_create_user(app, client):
    db = client.db
    role = Role(name='admin', description='Administrator')
    user = User(username='******',
                email='*****@*****.**',
                password='******',
                role=role)
    with app.app_context():
        db.session.add(role)
        db.session.add(user)
        db.session.commit()
        first = User.query.first()

    assert isinstance(first, User)
    assert len(UUID(first.public_id).hex) == 32
    assert first.verify_password('testineTestHatEinPw')
コード例 #11
0
ファイル: utils.py プロジェクト: felbinger/PythonFlaskLogin
 def create_user(self,
                 username='******',
                 password='******',
                 role='user'):
     with self.app.app_context():
         if not User.query.filter_by(username=username).first():
             _role = Role.query.filter_by(name=role).first()
             if not _role:
                 _role = Role(name=role, description=role.upper())
                 self.db.session.add(_role)
             user = User(username=username,
                         email=f'{username}@example.com',
                         password=password,
                         role=_role,
                         totp_enabled=False)
             self.db.session.add(user)
         self.db.session.commit()
コード例 #12
0
def _get_token(app, client):
    with app.app_context():
        role = Role.query.filter_by(name="admin").first()
        if not role:
            role = Role(name='admin', description='Administrator')
        user = User(
            username='******',
            email='*****@*****.**',
            password='******',
            role=role
        )
        db = client.db
        db.session.add(role)
        db.session.add(user)
        db.session.commit()
    resp = client.post('/api/auth', json={'username': '******', 'password': '******'})
    data = json.loads(resp.data.decode())
    return data.get('token')
コード例 #13
0
def _get_user_token(app, client):
    role = Role(name='user', description='user')
    user = User(username='******',
                email='*****@*****.**',
                password='******',
                role=role)
    db = client.db
    with app.app_context():
        db.session.add(role)
        db.session.add(user)
        db.session.commit()
    resp = client.post('/api/auth',
                       json={
                           'username': '******',
                           'password': '******'
                       })
    data = json.loads(resp.data.decode())
    return data.get('token')
コード例 #14
0
def _create_dummy_message(app, client, subject):
    db = client.db
    with app.app_context():
        role = Role.query.filter_by(name="admin").first()
        if not role:
            role = Role(name='admin', description='Administrator')
        user = User.query.filter_by(username="******").first()
        if not user:
            user = User(
                username='******',
                email='*****@*****.**',
                password='******',
                role=role
            )
        message = Message(subject=subject, message='MyMessage', user=user)
        db.session.add(message)
        db.session.commit()
        return message
コード例 #15
0
ファイル: db_test.py プロジェクト: felbinger/PythonFlaskLogin
def test_create_user(app, client):
    db = client.db
    with app.app_context():
        role = Role(name='admin', description='Administrator')
        user = User(username='******',
                    displayName='Testine Test',
                    password='******',
                    email='*****@*****.**',
                    role=role,
                    totp_enabled=False)
        db.session.add(role)
        db.session.add(user)
        db.session.commit()
        queried_user = User.query.filter_by(username='******').first()

        assert isinstance(queried_user, User)
        assert len(UUID(queried_user.guid).hex) == 32
        assert queried_user.displayName == 'Testine Test'
        assert queried_user.email == '*****@*****.**'
        assert queried_user.verify_password('password_for_test')
コード例 #16
0
def test_solve_challenge(app, client):
    db = client.db

    role = Role(name='admin', description='Administrator')
    user = User(username='******',
                email='*****@*****.**',
                password='******',
                role=role)
    cat = Category(name='test', description='Test')
    challenge = Challenge(name="TEST",
                          description="TEST",
                          flag="TEST",
                          category=cat,
                          points=0)
    solve = Solve(challenge=challenge, user=user)
    with app.app_context():
        db.session.add(role)
        db.session.add(user)
        db.session.add(challenge)
        db.session.add(cat)
        db.session.add(solve)
        db.session.commit()
        assert len(Solve.query.all()) == 1