Example #1
0
def change_root_permission():
    _id = request.args.get("_id")
    if Worker.is_admin(current_user.id, g.current_invest.id):
        worker = Worker.query.filter_by(id=_id).first()
        if worker:
            num_of_admins = Investment.get_num_of_admins(g.current_invest.id)
            if num_of_admins < 2:
                if worker.admin:
                    flash("You can not delete last admin!")
                    return redirect(url_for("team.team"))
            form = WarrantyForm()
            if form.validate_on_submit():
                if form.yes.data:
                    if worker.admin:
                        worker.admin = False
                    else:
                        worker.admin = True
                    db.session.commit()
                    flash(
                        "You have changed worker's root permission successfully."
                    )
                return redirect(url_for("team.team"))
            return render_template("warranty_form.html",
                                   title="Change Root Permission",
                                   form=form)
    return redirect(url_for("team.team"))
Example #2
0
    def test_get_num_of_admins(app_and_db):
        db = app_and_db[1]
        for i in range(1, 4):
            user = User(
                username="******".format(i),
                email="user_{}@mail.com".format(i),
                password="******",
            )
            user.is_active = True
            db.session.add(user)
        investment = Investment(name="test invest")
        db.session.add(investment)
        db.session.commit()

        user1 = User.get_user(1)
        user2 = User.get_user(2)
        user3 = User.get_user(3)
        invest = Investment.query.filter_by(id=1).first()
        worker1 = Worker(position="pos1", admin=True, user_id=user1.id)
        worker2 = Worker(position="pos2", admin=False, user_id=user2.id)
        worker3 = Worker(position="pos3", admin=True, user_id=user3.id)
        invest.workers.append(worker1)
        invest.workers.append(worker2)
        invest.workers.append(worker3)
        db.session.commit()

        assert Investment.get_num_of_admins(investment_id=1) == 2