Exemplo n.º 1
0
def setup():
    try:
        g.session.query(User).first()
    except OperationalError:
        if request.method == "POST":
            try:
                MainBase.metadata.create_all(g.engine_main)
            except OperationalError as error:
                app.logger.error(error)
            else:
                u = User(email=request.form['email'],
                         password=hash_password(request.form['password'], app.secret_key),
                         name_first=request.form['name_first'],
                         name_last=request.form['name_last'],
                         level=99)
                g.session.add(u)
                g.session.commit()
                try:
                    os.mkdir(app.config['FD_INDEX_PATH'])
                except FileExistsError as error:
                    app.logger.warning(error)
                return redirect(url_for('login'))
        return render_template("setup.html")
    else:
        flash("Setup already complete.", "warning")
        return redirect(url_for('databases'))
Exemplo n.º 2
0
def users():
    form = UserForm()
    if form.validate_on_submit():
        u = User(email=form.email.data,
                 password=hash_password(form.password.data, app.secret_key),
                 level=form.level.data)
        g.session.add(u)
        g.session.commit()
    return render_template("users.html", form=form, users=g.session.query(User).all())
Exemplo n.º 3
0
def login():
    form = LoginForm()
    if form.validate_on_submit():
        try:
            u = g.session.query(User).filter_by(email=form.email.data).one()
        except NoResultFound:
            flash("Invalid user.", "error")
            return render_template("login.html")
        if hash_password(form.password.data, app.secret_key) == u.password:
            session['email'] = u.email
            session['level'] = u.level
            return redirect(url_for('index'))

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