From b524cf941edbf80cbeb88a39130548c4c55446a3 Mon Sep 17 00:00:00 2001 From: Reid 'arrdem' McKenzie Date: Fri, 19 May 2023 00:52:07 -0600 Subject: [PATCH] Register/Login/Logout somewhat working --- projects/tentacles/BUILD | 5 +- projects/tentacles/README.md | 5 +- projects/tentacles/config.toml | 2 + .../src/python/tentacles/__main__.py | 53 ++++- .../src/python/tentacles/blueprints.py | 7 - .../src/python/tentacles/blueprints/api.py | 72 +++++++ .../src/python/tentacles/blueprints/ui.py | 86 ++++++++ .../tentacles/src/python/tentacles/schema.sql | 76 +++++++ .../src/python/tentacles/static/__init__.py | 1 + .../src/python/tentacles/static/css/BUILD | 20 ++ .../tentacles/static/css/_tirefire.scss | 9 + .../python/tentacles/static/css/style.scss | 89 ++++++++ .../tentacles/static/font/AauxNextBlk.otf | Bin 0 -> 67380 bytes .../static/font/aauxnextbdwebfont.otf | Bin 0 -> 68952 bytes .../static/font/aauxnextltwebfont.otf | Bin 0 -> 67008 bytes .../static/font/aauxnextmdwebfont.otf | Bin 0 -> 67736 bytes .../tentacles/src/python/tentacles/store.py | 200 ++++++++++-------- .../python/tentacles/templates/__init__.py | 1 + .../python/tentacles/templates/base.html.j2 | 42 ++++ .../python/tentacles/templates/index.html.j2 | 4 + .../python/tentacles/templates/login.html.j2 | 9 + .../tentacles/templates/register.html.j2 | 9 + 22 files changed, 581 insertions(+), 109 deletions(-) create mode 100644 projects/tentacles/config.toml delete mode 100644 projects/tentacles/src/python/tentacles/blueprints.py create mode 100644 projects/tentacles/src/python/tentacles/blueprints/api.py create mode 100644 projects/tentacles/src/python/tentacles/blueprints/ui.py create mode 100644 projects/tentacles/src/python/tentacles/schema.sql create mode 100644 projects/tentacles/src/python/tentacles/static/__init__.py create mode 100644 projects/tentacles/src/python/tentacles/static/css/BUILD create mode 100644 projects/tentacles/src/python/tentacles/static/css/_tirefire.scss create mode 100644 projects/tentacles/src/python/tentacles/static/css/style.scss create mode 100644 projects/tentacles/src/python/tentacles/static/font/AauxNextBlk.otf create mode 100644 projects/tentacles/src/python/tentacles/static/font/aauxnextbdwebfont.otf create mode 100644 projects/tentacles/src/python/tentacles/static/font/aauxnextltwebfont.otf create mode 100644 projects/tentacles/src/python/tentacles/static/font/aauxnextmdwebfont.otf create mode 100644 projects/tentacles/src/python/tentacles/templates/__init__.py create mode 100644 projects/tentacles/src/python/tentacles/templates/base.html.j2 create mode 100644 projects/tentacles/src/python/tentacles/templates/index.html.j2 create mode 100644 projects/tentacles/src/python/tentacles/templates/login.html.j2 create mode 100644 projects/tentacles/src/python/tentacles/templates/register.html.j2 diff --git a/projects/tentacles/BUILD b/projects/tentacles/BUILD index 66ccda3..88703b5 100644 --- a/projects/tentacles/BUILD +++ b/projects/tentacles/BUILD @@ -7,5 +7,8 @@ py_project( py_requirement("click"), py_requirement("flask"), py_requirement("jinja2"), - ] + ], + main_data = [ + "//projects/tentacles/src/python/tentacles/static/css", + ], ) diff --git a/projects/tentacles/README.md b/projects/tentacles/README.md index e223fff..1dc95fa 100644 --- a/projects/tentacles/README.md +++ b/projects/tentacles/README.md @@ -6,7 +6,7 @@ A simple queue system for OctoPrint, designed to receive jobs and forward them t Username+Password users -API keys mapped to users +API keys mapped to users (same thing as sessions actually) Users mapped to job priority @@ -34,7 +34,8 @@ Checking bed status on a printer -X POST \ -H 'Accept: application/json' \ -H 'Content-Type: application/json; charset=UTF-8' \ - -H 'Authorization: Bearer ...' \ + -H 'Authorization: Bearer ...No creds +' \ --data-raw '{"command":"check_bed","reference":"reference_2023-05-11T05:22:40.212Z.jpg"}' \ | jq . diff --git a/projects/tentacles/config.toml b/projects/tentacles/config.toml new file mode 100644 index 0000000..afb4f9b --- /dev/null +++ b/projects/tentacles/config.toml @@ -0,0 +1,2 @@ +[db] +uri = "tentacles.sqlite3" diff --git a/projects/tentacles/src/python/tentacles/__main__.py b/projects/tentacles/src/python/tentacles/__main__.py index 6f447a5..e0ba654 100644 --- a/projects/tentacles/src/python/tentacles/__main__.py +++ b/projects/tentacles/src/python/tentacles/__main__.py @@ -4,8 +4,13 @@ """ +from pathlib import Path import click -import flask +from flask import Flask, request, session, current_app +import tomllib + +from tentacles.blueprints import ui, api +from tentacles.store import Store @click.group() @@ -13,11 +18,49 @@ def cli(): pass +def open_db(): + current_app.db = Store(current_app.config.get("db", {}).get("uri")) + current_app.db.connect() + + +def commit_db(resp): + current_app.db.commit() + return resp + + +def user_session(): + if (session_id := request.cookies.get("sid", "")) and ( + uid := current_app.db.try_key(session_id) + ): + request.sid = session_id + request.uid = uid + _, gid, name, _ = current_app.db.fetch_user(uid) + request.gid = gid + request.username = name + else: + request.sid = request.uid = request.gid = request.username = None + + @cli.command() -def serve(): - app = flask.Flask() - app.register_blueprint() - app.run() +@click.option("--hostname", "hostname", type=str, default="0.0.0.0") +@click.option("--port", "port", type=int, default=8080) +@click.option("--config", type=Path) +def serve(hostname: str, port: int, config: Path): + app = Flask(__name__) + if config: + with open(config, "rb") as fp: + app.config.update(tomllib.load(fp)) + + print(app.config) + + app.before_first_request(open_db) + app.before_request(user_session) + app.after_request(commit_db) + + app.register_blueprint(ui.BLUEPRINT) + app.register_blueprint(api.BLUEPRINT) + + app.run(host=hostname, port=port) if __name__ == "__main__": diff --git a/projects/tentacles/src/python/tentacles/blueprints.py b/projects/tentacles/src/python/tentacles/blueprints.py deleted file mode 100644 index e0eeab7..0000000 --- a/projects/tentacles/src/python/tentacles/blueprints.py +++ /dev/null @@ -1,7 +0,0 @@ -#!/usr/bin/env python3 - -"""Blueprints for the Tentacles app.""" - -from flask import Blueprint - -BLUEPRINT = Blueprint(__name__, __qualname__, template_folder=__package__) diff --git a/projects/tentacles/src/python/tentacles/blueprints/api.py b/projects/tentacles/src/python/tentacles/blueprints/api.py new file mode 100644 index 0000000..4bab571 --- /dev/null +++ b/projects/tentacles/src/python/tentacles/blueprints/api.py @@ -0,0 +1,72 @@ +#!/usr/bin/env python3 + +"""API endpoints supporting the 'ui'.""" + +from importlib.resources import files +from sys import meta_path, prefix + +from flask import Blueprint, request, Request, redirect + +BLUEPRINT = Blueprint("api", __name__, url_prefix="/api") + + +#################################################################################################### +# Printers +# +# The trick here is handling multipart uploads. +@BLUEPRINT.route("/printer", methods=["POST"]) +def create_printer(): + pass + + +@BLUEPRINT.route("/printer", methods=["GET"]) +def list_printers(): + pass + + +@BLUEPRINT.route("/printer", methods=["DELETE"]) +def delete_printer(): + pass + + +#################################################################################################### +# Files +# +# The trick here is handling multipart uploads. +@BLUEPRINT.route("/file", methods=["POST"]) +def create_file(): + pass + + +@BLUEPRINT.route("/file", methods=["GET"]) +def get_files(): + pass + + +@BLUEPRINT.route("/file", methods=["DELETE"]) +def delete_file(): + pass + + +#################################################################################################### +# Jobs +@BLUEPRINT.route("/job", methods=["POST"]) +def create_job(): + pass + + +@BLUEPRINT.route("/job", methods=["GET"]) +def get_jobs(): + pass + + +@BLUEPRINT.route("/job", methods=["DELETE"]) +def delete_job(): + pass + + +#################################################################################################### +# API tokens +@BLUEPRINT.route("/token", methods=["GET"]) +def get_tokens(): + pass diff --git a/projects/tentacles/src/python/tentacles/blueprints/ui.py b/projects/tentacles/src/python/tentacles/blueprints/ui.py new file mode 100644 index 0000000..6cc1565 --- /dev/null +++ b/projects/tentacles/src/python/tentacles/blueprints/ui.py @@ -0,0 +1,86 @@ +#!/usr/bin/env python3 + +"""Blueprints for HTML serving 'ui'.""" + +from datetime import timedelta +from importlib.resources import files + +from flask import ( + Blueprint, + current_app, + request, + Request, + redirect, + render_template, + session, + url_for, +) + +BLUEPRINT = Blueprint("ui", __name__) + + +def is_logged_in(authorization): + return False + + +@BLUEPRINT.route("/") +def root(): + return ( + render_template( + "index.html.j2", + request=request, + ), + 200, + ) + + +@BLUEPRINT.route("/login", methods=["GET", "POST"]) +def login(): + if is_logged_in(request.authorization): + return redirect("/") + + elif request.method == "POST": + if sid := current_app.db.try_login( + request.form["username"], request.form["password"], timedelta(days=1) + ): + resp = redirect("/") + resp.set_cookie("sid", sid) + return resp + + else: + return render_template("login.html.j2", error="Incorrect username/password") + + else: + return render_template("login.html.j2") + + +@BLUEPRINT.route("/register", methods=["GET", "POST"]) +def register(): + if is_logged_in(request.authorization): + return redirect("/") + elif request.method == "POST": + try: + if uid := current_app.db.try_create_user( + request.form["username"], request.form["password"] + ): + return render_template( + "login.html.j2", message="Success, please log in" + ) + except: + pass + + return render_template( + "login.html.j2", error="Unable to register that username" + ) + + else: + return render_template("login.html.j2") + + +@BLUEPRINT.route("/logout") +def logout(): + # Invalidate the user's authorization + current_app.db.delete_key(request.sid) + resp = redirect("/") + resp.set_cookie("sid", "") + return resp diff --git a/projects/tentacles/src/python/tentacles/schema.sql b/projects/tentacles/src/python/tentacles/schema.sql new file mode 100644 index 0000000..cc818aa --- /dev/null +++ b/projects/tentacles/src/python/tentacles/schema.sql @@ -0,0 +1,76 @@ +CREATE TABLE IF NOT EXISTS groups ( + id INTEGER PRIMARY KEY AUTOINCREMENT + , name TEXT + , priority INTEGER CHECK(priority IS NOT NULL AND priority > 0) +); + +INSERT OR IGNORE INTO groups (id, name, priority) VALUES (0, 'root', 20); +INSERT OR IGNORE INTO groups (id, name, priority) VALUES (0, 'users', 10); +INSERT OR IGNORE INTO groups (id, name, priority) VALUES (0, 'guests', 0); + +CREATE TABLE IF NOT EXISTS users ( + id INTEGER PRIMARY KEY AUTOINCREMENT + , group_id INTEGER + , name TEXT + , hash TEXT + , FOREIGN KEY(group_id) REFERENCES groups(id) + , UNIQUE(name) +); + +---------------------------------------------------------------------------------------------------- +-- Keys represent API keys and auth sessions +CREATE TABLE IF NOT EXISTS user_keys ( + id TEXT PRIMARY KEY DEFAULT (lower(hex(randomblob(48)))) + , user_id INTEGER + , expiration TEXT +); + +---------------------------------------------------------------------------------------------------- +-- Printers represent physical devices (really octoprint API targets) that jobs can go to +CREATE TABLE IF NOT EXISTs printer_statuses ( + id INTEGER PRIMARY KEY AUTOINCREMENT + , name TEXT + , UNIQUE(name) +); + +INSERT OR IGNORE INTO printer_statuses (id, name) values (-1, 'error'); +INSERT OR IGNORE INTO printer_statuses (id, name) values (0, 'disconnected'); +INSERT OR IGNORE INTO printer_statuses (id, name) values (1, 'connected'); +INSERT OR IGNORE INTO printer_statuses (id, name) values (2, 'idle'); +INSERT OR IGNORE INTO printer_statuses (id, name) values (3, 'running'); + +CREATE TABLE IF NOT EXISTS printers ( + id INTEGER PRIMARY KEY AUTOINCREMENT + , url TEXT + , api_key TEXT + , status_id INTEGER + , last_poll_date TEXT + , FOREIGN KEY(status_id) REFERENCES printer_statuses(id) +); + +---------------------------------------------------------------------------------------------------- +-- Files are printables +CREATE TABLE IF NOT EXISTS files ( + id INTEGER PRIMARY KEY AUTOINCREMENT + , user_id INTEGER + , filename TEXT + , upload_date TEXT + , FOREIGN KEY(user_id) REFERENCES user(id) +); + +---------------------------------------------------------------------------------------------------- +-- A job is a request for a copy of a file to be run off +-- For simplicity, jobs also serve as scheduling records +CREATE TABLE IF NOT EXISTS jobs ( + id INTEGER PRIMARY KEY AUTOINCREMENT + , user_id INTEGER NOT NULL + , file_id INTEGER NOT NULL + , priority INTEGER CHECK(priority IS NOT NULL AND 0 <= priority) + , started_at TEXT + , finished_at TEXT + , state TEXT + , printer_id INTEGER + , FOREIGN KEY(user_id) REFERENCES users(id) + , FOREIGN KEY(file_id) REFERENCES files(id) + , FOREIGN KEY(printer_id) REFERENCES printer(id) +); diff --git a/projects/tentacles/src/python/tentacles/static/__init__.py b/projects/tentacles/src/python/tentacles/static/__init__.py new file mode 100644 index 0000000..e5a0d9b --- /dev/null +++ b/projects/tentacles/src/python/tentacles/static/__init__.py @@ -0,0 +1 @@ +#!/usr/bin/env python3 diff --git a/projects/tentacles/src/python/tentacles/static/css/BUILD b/projects/tentacles/src/python/tentacles/static/css/BUILD new file mode 100644 index 0000000..5733c94 --- /dev/null +++ b/projects/tentacles/src/python/tentacles/static/css/BUILD @@ -0,0 +1,20 @@ +sass_library( + name = "lib", + srcs = glob(["**/_*.scss"]), +) + +sass_binary( + name = "style", + src = "style.scss", + deps = [ + ":lib" + ], +) + +filegroup( + name = "css", + srcs = [ + ":style", + ], + visibility = ["//projects/tentacles:__pkg__"], +) diff --git a/projects/tentacles/src/python/tentacles/static/css/_tirefire.scss b/projects/tentacles/src/python/tentacles/static/css/_tirefire.scss new file mode 100644 index 0000000..89a12b9 --- /dev/null +++ b/projects/tentacles/src/python/tentacles/static/css/_tirefire.scss @@ -0,0 +1,9 @@ +$black: #171426; +$beige: #F4F8EE; +$red: #BB2D2E; +$orange: #CA4F1F; +$yellow: #EDB822; +$secondary_blue: #288BC2; +$secondary_green: #A5C426; +$secondary_light_grey: #CACBCA; +$secondary_dark_grey: #9A9A9A; diff --git a/projects/tentacles/src/python/tentacles/static/css/style.scss b/projects/tentacles/src/python/tentacles/static/css/style.scss new file mode 100644 index 0000000..3446f8b --- /dev/null +++ b/projects/tentacles/src/python/tentacles/static/css/style.scss @@ -0,0 +1,89 @@ +// @use 'tirefire' as tfi; + +$black: #171426; +$beige: #F4F8EE; +$red: #BB2D2E; +$orange: #CA4F1F; +$yellow: #EDB822; +$secondary_blue: #288BC2; +$secondary_green: #A5C426; +$secondary_light_grey: #CACBCA; +$secondary_dark_grey: #9A9A9A; + + +@font-face { + font-family: 'Aaux Next'; + font-style: normal; + font-weight: 400; + src: local('Aaux Next'), url('https://fonts.cdnfonts.com/s/60597/AauxNextBlk.woff') format('woff'); +} +@font-face { + font-family: 'Aaux Next'; + font-style: normal; + font-weight: 400; + src: local('Aaux Next'), url('https://fonts.cdnfonts.com/s/60597/aauxnextbdwebfont.woff') format('woff'); +} +@font-face { + font-family: 'Aaux Next'; + font-style: normal; + font-weight: 400; + src: local('Aaux Next'), url('https://fonts.cdnfonts.com/s/60597/aauxnextltwebfont.woff') format('woff'); +} +@font-face { + font-family: 'Aaux Next'; + font-style: normal; + font-weight: 400; + src: local('Aaux Next'), url('https://fonts.cdnfonts.com/s/60597/aauxnextmdwebfont.woff') format('woff'); +} + +html { + font-family: 'Aaux Next', sans-serif; + background-color: $beige; + color: $black; + display: flex; +} + +body { + width: 100vw; +} + +*, *::before, *::after { + box-sizing: inherit; + margin: 0; + padding: 0; +} + +nav { + width: 100%; + border-bottom: $orange 10px solid; + padding-left: 30px; + padding-right: 10px; +} + +.logo { + display: inline-block; +} + +.nav-links { + list-style: none; +} + +.nav-item a { + display: inline-block; + padding: 10px 15px; + text-decoration: none; + color: $secondary_green; +} + +.nav-item:hover { + background-color: white; +} + +.nav-item:hover a { + color: $secondary_blue; +} + +.logo img { + width: 175px; + vertical-align: middle; +} diff --git a/projects/tentacles/src/python/tentacles/static/font/AauxNextBlk.otf b/projects/tentacles/src/python/tentacles/static/font/AauxNextBlk.otf new file mode 100644 index 0000000000000000000000000000000000000000..f2012a583d117a06fdf328a1bb158d052a08f1a8 GIT binary patch literal 67380 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 literal 0 HcmV?d00001 diff --git a/projects/tentacles/src/python/tentacles/static/font/aauxnextbdwebfont.otf b/projects/tentacles/src/python/tentacles/static/font/aauxnextbdwebfont.otf new file mode 100644 index 0000000000000000000000000000000000000000..3be3d8236810252611f23f3e1d017502cf03047a GIT binary patch literal 68952 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%0D>X^`4M=;3ATQPDP_)05$Eg$EM< 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 X+EC5AN=A1mtx2>uNxQf`fg1c9M1+z; literal 0 HcmV?d00001 diff --git a/projects/tentacles/src/python/tentacles/static/font/aauxnextltwebfont.otf b/projects/tentacles/src/python/tentacles/static/font/aauxnextltwebfont.otf new file mode 100644 index 0000000000000000000000000000000000000000..619650daa59d97ee47c0e0aab1a52ac1edfa662c GIT binary patch literal 67008 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 literal 0 HcmV?d00001 diff --git a/projects/tentacles/src/python/tentacles/static/font/aauxnextmdwebfont.otf b/projects/tentacles/src/python/tentacles/static/font/aauxnextmdwebfont.otf new file mode 100644 index 0000000000000000000000000000000000000000..09d3356df5e1454e2ec917b5873882487583d694 GIT binary patch literal 67736 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

U^ReNB!AF1u`6y1Z1z{sy{`e^0N|0rQ+L8s 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 0) - DEFAULT 100 -); - -CREATE TABLE IF NOT EXISTS users ( - id INTEGER PRIMARY KEY AUTOINCREMENT - , group_id INTEGER - , name TEXT - , hash TEXT - , FOREIGN KEY(group_id) REFERENCES groups(id) - , UNIQUE(name) -); - -CREATE TABLE IF NOT EXISTS user_keys ( - id TEXT PRIMARY KEY DEFAULT (lower(hex(randomblob(48)))) - , user_id INTEGER - , expiration TEXT -); - -CREATE TABLE IF NOT EXISTS files ( - id INTEGER PRIMARY KEY AUTOINCREMENT - , user_id INTEGER - , filename TEXT - , upload_date TEXT - , FOREIGN KEY(user_id) REFERENCES user(id) -); - -CREATE TABLE IF NOT EXISTS jobs ( - id INTEGER PRIMARY KEY AUTOINCREMENT - , user_id INTEGER - , FOREIGN KEY(user_id) REFERENCES user(id) -); - -CREATE TABLE IF NOT EXISTs printer_statuses ( - id INTEGER PRIMARY KEY AUTOINCREMENT - , name TEXT - , UNIQUE(name) -); - -INSERT OR IGNORE INTO printer_statuses (name) values ('disconnected'); -INSERT OR IGNORE INTO printer_statuses (name) values ('connected'); -INSERT OR IGNORE INTO printer_statuses (name) values ('idle'); -INSERT OR IGNORE INTO printer_statuses (name) values ('running'); -INSERT OR IGNORE INTO printer_statuses (name) values ('error'); - -CREATE TABLE IF NOT EXISTS printers ( - id INTEGER PRIMARY KEY AUTOINCREMENT - , url TEXT - , api_key TEXT - , status_id INTEGER - , last_poll_date TEXT - , FOREIGN KEY(status_id) REFERENCES printer_statuses(id) -); - -CREATE TABLE IF NOT EXISTS runs ( - id INTEGER PRIMARY KEY AUTOINCREMENT - , job_id INTEGER - , started_at TEXT - , finished_at TEXT - , state TEXT - , printer_id INTEGER - , FOREIGN KEY(job_id) REFERENCES job(id) - , FOREIGN KEY(printer_id) REFERENCES printer(id) -); -""" +with files(__package__).joinpath("schema.sql").open("r") as fp: + PRELUDE = fp.read() def requires_conn(f): @@ -90,6 +23,28 @@ def requires_conn(f): return _helper +def fmap(ctor): + """Fmap a constructor over the records returned from a query function.""" + + def _h1(f): + def _h2(*args, **kwargs): + res = f(*args, **kwargs) + if isinstance(res, list): + return [ctor(*it) for it in res] + elif isinstance(res, tuple): + return ctor(*res) + + return _h2 + + return _h1 + + +def one(it, *args, **kwargs): + assert not args + assert not kwargs + return it + + class Store(object): def __init__(self, path): self._path = path @@ -106,12 +61,17 @@ class Store(object): f"Unable to execute startup script:\n{indent(hunk, ' > ')}" ) from e + @requires_conn + def commit(self): + self._conn.commit() + def close(self): if self._conn: - self._conn.commit() + self.commit() self._conn.close() self._conn = None + @fmap(one) @requires_conn def try_create_user(self, username, password): """Attempt to create a new user.""" @@ -121,7 +81,19 @@ class Store(object): return self._conn.execute( "INSERT INTO users (name, hash) VALUES (?, ?) RETURNING (id)", [username, digest.hexdigest()], - ).fetchone()[0] + ).fetchone() + + @requires_conn + def fetch_user(self, uid: int): + return self._conn.execute("SELECT * FROM users WHERE id = ?", [uid]).fetchone() + + @fmap(one) + @requires_conn + def fetch_user_priority(self, uid: int): + return self._conn.execute( + "SELECT priority FROM groups g INNER JOIN users u ON g.id = u.group_id WHERE u.id = ?", + [uid], + ).fetchone() @requires_conn def list_users(self): @@ -130,12 +102,13 @@ class Store(object): ################################################################################ # Sessions / 'keys' + @fmap(one) @requires_conn def _create_session(self, uid: int, ttl: Optional[timedelta]): return self._conn.execute( "INSERT INTO user_keys (user_id, expiration) VALUES (?, ?) RETURNING (id)", [uid, (datetime.now() + ttl).isoformat() if ttl else None], - ).fetchone()[0] + ).fetchone() @requires_conn def try_login(self, username: str, password: str, ttl: timedelta) -> Optional[str]: @@ -177,16 +150,15 @@ class Store(object): "SELECT * FROM user_keys WHERE id = ?", [kid] ).fetchone() + @fmap(one) @requires_conn def try_key(self, kid: str): """Try to find the mapped user for a session.""" - res = self._conn.execute( + return self._conn.execute( "SELECT user_id FROM user_keys WHERE expiration IS NULL OR unixepoch(expiration) > unixepoch('now') and id = ?", [kid], ).fetchone() - if res: - return res[0] @requires_conn def refresh_key(self, kid: str, ttl: timedelta): @@ -227,39 +199,79 @@ class Store(object): # Files # # A record of local files on disk, and the users who own then. + @fmap(one) @requires_conn - def create_file(self, uid: int, path: Path): - pass + def create_file(self, uid: int, name: str, path: Path) -> int: + return self._conn.execute( + "INSERT INTO files (user_id, filename, upload_date) VALUES (?, ?, datetime('now')) RETURNING (id)", + [uid, name], + ).fetchone() @requires_conn def list_files(self, uid: int): - pass + return self._conn.execute( + "SELECT * FROM files WHERE user_id = ?", [uid] + ).fetchall() @requires_conn def delete_file(self, uid: int, fid: int): - pass + self._conn.execute("DELETE FROM files WHERE user_id = ? AND id = ?", [uid, fid]) ################################################################################ # Job # # A request by a user for a given file to be printed. + @fmap(one) @requires_conn - def create_job(self, uid: int): - pass + def create_job(self, uid: int, fid: int, relative_priority: int = 0): + """Create a job mapped to a user with a file to print and a priority. + + Note that the user may provide a sub-priority within their group queue. This allows users to create jobs with + higher priority than existing jobs as a means of controlling the queue order. + + May want a different (eg. more explicit) queue ordering mechanism here. Emulating the Netflix queue behavior of + being able to drag some jobs ahead of others? How to model that? + + """ + assert 0 <= relative_priority <= 9 + return self._conn.execute( + "INSERT INTO jobs (user_id, file_id, priority) VALUES (?, ?, ?) RETURNING (id)", + [uid, fid, self.fetch_user_priority(uid) + relative_priority], + ).fetchone() @requires_conn - def list_jobs(self, uid: int): - pass + def list_jobs(self, uid: Optional[int] = None): + """Enumerate jobs in priority order.""" + cond = f"AND user_id = {uid}" if uid else "" + return self._conn.execute( + f"SELECT * FROM jobs WHERE started_at IS NULL {cond} ORDER BY priority DESC", + [], + ).fetchall() + + @requires_conn + def fetch_job(self, uid: int, jid: int) -> Optional[tuple]: + return self._conn.execute( + "SELECT * FROM jobs WHERE user_id = ? AND id = ?", [uid, jid] + ).fetchone() + + @requires_conn + def alter_job(self, job: tuple): + fields = [ + "id", + "user_id", + "file_id", + "priority", + "started_at", + "finished_at", + "state", + "printer_id", + ] + assert len(job) == len(fields) + return self._conn.execute( + f"INSERT OR REPLACE INTO jobs ({', '.join(fields)}) VALUES ({', '.join(['?'] * len(fields))})", + job, + ) @requires_conn def delete_job(self, uid: int, jid: int): - pass - - ################################################################################ - # Run - # - # A record tha that a Job has been assigned to a Printer and is running. - # Could perhaps be eliminated in favor of rolling state into the Job. - @requires_conn - def list_runs(self, uid: int): - pass + self._conn.execute("DELETE FROM jobs WHERE user_id = ? and id = ?", [uid, jid]) diff --git a/projects/tentacles/src/python/tentacles/templates/__init__.py b/projects/tentacles/src/python/tentacles/templates/__init__.py new file mode 100644 index 0000000..e5a0d9b --- /dev/null +++ b/projects/tentacles/src/python/tentacles/templates/__init__.py @@ -0,0 +1 @@ +#!/usr/bin/env python3 diff --git a/projects/tentacles/src/python/tentacles/templates/base.html.j2 b/projects/tentacles/src/python/tentacles/templates/base.html.j2 new file mode 100644 index 0000000..421f1a4 --- /dev/null +++ b/projects/tentacles/src/python/tentacles/templates/base.html.j2 @@ -0,0 +1,42 @@ + + + + {% block head %} + + Tentacles{% block title %}{% endblock %} + {% endblock %} + + +

+ + {% with messages = get_flashed_messages() %} + {% if messages %} +
+
    + {% for message in messages %} +
  • {{ message }}
  • + {% endfor %} +
+
+ {% endif %} + {% endwith %} +
+ {% block content %}Oops, an empty page :/{% endblock %} +
+ + + diff --git a/projects/tentacles/src/python/tentacles/templates/index.html.j2 b/projects/tentacles/src/python/tentacles/templates/index.html.j2 new file mode 100644 index 0000000..925abcb --- /dev/null +++ b/projects/tentacles/src/python/tentacles/templates/index.html.j2 @@ -0,0 +1,4 @@ +{% extends "base.html.j2" %} +{% block content %} +

Hello, {% if request.uid %}{{ request.username }}{% else %}world{% endif %}!

+{% endblock %} diff --git a/projects/tentacles/src/python/tentacles/templates/login.html.j2 b/projects/tentacles/src/python/tentacles/templates/login.html.j2 new file mode 100644 index 0000000..a2f4995 --- /dev/null +++ b/projects/tentacles/src/python/tentacles/templates/login.html.j2 @@ -0,0 +1,9 @@ +{% extends "base.html.j2" %} +{% block content %} +

Log in

+
+

Username: +

Password: +

+

+{% endblock %} diff --git a/projects/tentacles/src/python/tentacles/templates/register.html.j2 b/projects/tentacles/src/python/tentacles/templates/register.html.j2 new file mode 100644 index 0000000..dd51e75 --- /dev/null +++ b/projects/tentacles/src/python/tentacles/templates/register.html.j2 @@ -0,0 +1,9 @@ +{% extends "base.html.j2" %} +{% block content %} +

Register

+
+

Username: +

Password: +

+

+{% endblock %}