示例#1
0
文件: admin.py 项目: minisin/Cockerel
def login():
    # TODO: make this do better auth, it needs to set a cookie for a period of
    #  time
    if request.method == 'POST':
        form = LoginForm.from_flat(request.form)
        if form.validate():
            user = User.query.filter_by(
                username=request.form['username']).first()

            if user == None:
                form['username'].add_error('Username %s not found' %
                                           form['username'].value)
                gen = Generator()
                return render_template("admin/login.html", form=form, html=gen)

            if user.check_password(request.form['password']):
                g.user = user
                set_user()
                if request.args:
                    return redirect(request.args.get('next'))
                else:
                    return redirect(url_for('frontend.index'))
        else:
            gen = Generator()
            return render_template("admin/login.html", form=form, html=gen)
    form = LoginForm()
    gen = Generator()
    return render_template("admin/login.html",
                           form=form,
                           html=gen,
                           **request.args)