From e4e413ede34a2ae306ddd130324435d0e735f064 Mon Sep 17 00:00:00 2001 From: Yves Fischer Date: Sat, 9 May 2015 00:07:35 +0200 Subject: influxdb-guard --- guard/templates.py | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 guard/templates.py (limited to 'guard/templates.py') diff --git a/guard/templates.py b/guard/templates.py new file mode 100644 index 0000000..e8d63a0 --- /dev/null +++ b/guard/templates.py @@ -0,0 +1,65 @@ +from . import model + +from typing import Iterable + +from lxml.builder import E +from lxml import etree +from flask import url_for + + +def _html(title: str, body: etree.Element) -> str: + return etree.tostring(E.html( + E.head(E.title(title)), + E.body(body) + ), encoding='utf-8') + + +def login() -> str: + return _html("Login", E.form( + E.input(type="password", name="secret", placeholder="Secret admin token"), + E.button("login", type="submit"), + method="POST" + )) + + +def _index_access(accesses: Iterable[model.Access]): + return map(lambda access: ( + E.tr( + E.td(access.token), + E.td(access.pattern), + E.td(str(access.create_date)), + E.td(access.comment), + E.td( + E.form( + E.input(type="hidden", name="id", value=str(access.id)), + E.button("X", title="Delete", type="submit"), + method="POST", action=url_for("delete"))) + ) + ), accesses) + + +def index(serverport: str, cookiename: str) -> str: + return _html( + "Manage access tokens", + E.div( + E.p(E.a("Logout", href=url_for("logout"))), + E.p("Call the write-service like: ", + E.pre("http://thisMachine:{}/write".format(serverport)), + "with the token in a cookie named {}".format(cookiename)), + E.p("Or directly in the url: ", + E.pre("http://thisMachine:{}/write/".format(serverport))), + E.form( + E.input(type="hidden", name="action", value="create"), + E.input(name="token", placeholder="Token secret"), + E.input(name="pattern", placeholder="Paths pattern"), + E.input(name="comment", placeholder="Comment"), + E.button("Create", type="submit"), method="POST"), + E.hr(), + E.table( + E.tr( + E.th("cookie: " + cookiename + " value"), E.th("Pattern"), + E.th("Create Date"), E.th("Comment"), E.th() + ), border="1", style="width: 100%", + *_index_access(model.Access.select().order_by(model.Access.create_date)) + )) + ) -- cgit v1.2.1