canaille-globuzma/web/routes.py

37 lines
808 B
Python
Raw Normal View History

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")