forked from Github-Mirrors/canaille
41 lines
1.1 KiB
Python
41 lines
1.1 KiB
Python
from flask import Blueprint, request, flash, url_for
|
|
from flask import render_template, redirect, jsonify
|
|
from flask_babel import gettext
|
|
|
|
from .forms import LoginForm
|
|
from .flaskutils import current_user
|
|
from .models import User
|
|
from .oauth2utils import require_oauth
|
|
|
|
|
|
bp = Blueprint(__name__, "home")
|
|
|
|
|
|
@bp.route("/")
|
|
def index():
|
|
if not current_user():
|
|
return redirect(url_for("oidc_ldap_bridge.account.login"))
|
|
return redirect(url_for("oidc_ldap_bridge.tokens.tokens"))
|
|
|
|
|
|
@bp.route("/login", methods=("GET", "POST"))
|
|
def login():
|
|
form = LoginForm(request.form or None)
|
|
|
|
if request.form:
|
|
if not form.validate() or not User.authenticate(
|
|
form.login.data, form.password.data, True
|
|
):
|
|
flash(gettext("Login failed, please check your information"), "error")
|
|
return render_template("login.html", form=form)
|
|
|
|
return redirect(url_for("oidc_ldap_bridge.account.index"))
|
|
|
|
return render_template("login.html", form=form)
|
|
|
|
|
|
@bp.route("/logout")
|
|
def logout():
|
|
if current_user():
|
|
current_user().logout()
|
|
return redirect("/")
|