2020-08-14 13:26:14 +00:00
|
|
|
from flask import Blueprint, request, session
|
2020-08-14 11:18:08 +00:00
|
|
|
from flask import render_template, redirect, jsonify
|
|
|
|
from .models import User, Client
|
2020-08-17 15:49:49 +00:00
|
|
|
from .oauth2utils import require_oauth
|
2020-08-14 11:18:08 +00:00
|
|
|
|
|
|
|
|
2020-08-16 17:39:14 +00:00
|
|
|
bp = Blueprint(__name__, "home")
|
2020-08-14 11:18:08 +00:00
|
|
|
|
|
|
|
|
2020-08-16 17:39:14 +00:00
|
|
|
@bp.route("/", methods=("GET", "POST"))
|
2020-08-14 11:18:08 +00:00
|
|
|
def home():
|
2020-08-16 17:39:14 +00:00
|
|
|
if request.method == "POST":
|
|
|
|
username = request.form.get("username")
|
2020-08-14 13:26:14 +00:00
|
|
|
user = User.get(username)
|
|
|
|
|
2020-08-14 11:18:08 +00:00
|
|
|
if not user:
|
|
|
|
user = User(cn=username, sn=username)
|
|
|
|
user.save()
|
2020-08-17 07:45:35 +00:00
|
|
|
|
2020-08-14 11:18:08 +00:00
|
|
|
session["user_dn"] = user.dn
|
2020-08-16 17:39:14 +00:00
|
|
|
return redirect("/")
|
2020-08-17 07:45:35 +00:00
|
|
|
|
2020-08-17 15:49:49 +00:00
|
|
|
clients = Client.filter()
|
|
|
|
return render_template("home.html", clients=clients)
|
2020-08-14 11:18:08 +00:00
|
|
|
|
2020-08-16 17:39:14 +00:00
|
|
|
|
|
|
|
@bp.route("/logout")
|
2020-08-14 13:26:14 +00:00
|
|
|
def logout():
|
2020-08-16 17:39:14 +00:00
|
|
|
del session["user_dn"]
|
|
|
|
return redirect("/")
|
|
|
|
|
2020-08-14 11:18:08 +00:00
|
|
|
|
2020-08-16 17:39:14 +00:00
|
|
|
@bp.route("/api/me")
|
|
|
|
@require_oauth("profile")
|
2020-08-14 11:18:08 +00:00
|
|
|
def api_me():
|
2020-08-14 13:26:14 +00:00
|
|
|
return jsonify(foo="bar")
|