Пример #1
0
 def test_basic_user(self):
     team = generate_sample_model_tree('Team', self.db)
     user = User(username="******", password="******", team=team)
     self.db.save(user)
     assert user.id is 1
     assert user.username == "testuser"
     assert user.password == User.generate_hash('testpass')
     assert user.team is team
     assert user.team_id is team.id
     assert user.get_id() == 1
Пример #2
0
 def test_basic_user(self):
     team = generate_sample_model_tree("Team", self.session)
     user = User(username="******", password="******", team=team)
     self.session.add(user)
     self.session.commit()
     assert user.id == 1
     assert user.username == "testuser"
     assert user.password == User.generate_hash("testpass")
     assert user.team is team
     assert user.team_id is team.id
     assert user.get_id() == 1
Пример #3
0
 def test_init_service(self):
     user = User(username="******", password="******")
     assert user.id is None
     assert user.username == "testuser"
     assert user.password == User.generate_hash("testpass")
     assert type(user.password) is str
     assert user.team is None
     assert user.team_id is None
     assert user.is_authenticated is None
     assert user.is_active is True
     assert user.is_anonymous is False
     assert user.get_username == "testuser"
     assert user.get_id() is None
Пример #4
0
def login():
    if current_user.is_authenticated:
        flash('You are already logged in.', 'info')
        return redirect(url_for("welcome.home"))

    form = LoginForm()

    if form.errors:
        flash(form.errors, 'danger')
        return render_template('login.html', form=form)

    if form.validate_on_submit():
        username = request.form.get('username')
        password = request.form.get('password')

        try:
            user = db.session.query(User).filter(User.username == username).one()
        except NoResultFound:
            flash('Invalid username or password. Please try again.', 'danger')
            return render_template('login.html', form=form)
        except OperationalError:
            flash("Error 'OperationError' received!. Try restarting the db service.", 'danger')
            return render_template('login.html', form=form)

        if user:
            if User.generate_hash(password, user.password) == user.password:
                user.authenticated = True
                db.save(user)
                login_user(user, remember=True)

                if user.is_white_team:
                    return redirect(request.values.get('next') or url_for("admin.status"))
                elif user.is_blue_team:
                    return redirect(request.values.get('next') or url_for("services.home"))
                else:
                    return redirect(request.values.get('next') or url_for("overview.home"))
            else:
                flash('Invalid username or password. Please try again.', 'danger')
                return render_template('login.html', form=form)
        else:
            flash('Invalid username or password. Please try again.', 'danger')
            return render_template('login.html', form=form)

    return render_template('login.html', form=form)