From e1344ae7017b28a54d7714895bd54c8431a20bc6 Mon Sep 17 00:00:00 2001 From: Wojtek Kosior Date: Thu, 18 Aug 2022 19:18:00 +0200 Subject: allow adding, removing and altering repositories This commit also temporarily breaks package import from files :/ --- src/hydrilla/proxy/web_ui/packages.py | 23 +++++++---------------- 1 file changed, 7 insertions(+), 16 deletions(-) (limited to 'src/hydrilla/proxy/web_ui/packages.py') diff --git a/src/hydrilla/proxy/web_ui/packages.py b/src/hydrilla/proxy/web_ui/packages.py index f38ea13..90876aa 100644 --- a/src/hydrilla/proxy/web_ui/packages.py +++ b/src/hydrilla/proxy/web_ui/packages.py @@ -35,7 +35,6 @@ import tempfile import zipfile import typing as t -from urllib.parse import urlparse from pathlib import Path import flask @@ -55,16 +54,12 @@ class InvalidUploadedMalcontent(HaketiloException): bp = flask.Blueprint('load_packages', __package__) @bp.route('/packages/load_from_disk', methods=['GET']) -def load_from_disk_get() -> flask.Response: +def load_from_disk_get() -> werkzeug.Response: html = flask.render_template('packages__load_from_disk.html.jinja') return flask.make_response(html, 200) @bp.route('/packages/load_from_disk', methods=['POST']) def load_from_disk_post() -> werkzeug.Response: - parsed_url = urlparse(flask.request.referrer) - if parsed_url.netloc != 'hkt.mitm.it': - return load_from_disk_get() - zip_file_storage = flask.request.files.get('packages_zipfile') if zip_file_storage is None: return load_from_disk_get() @@ -90,31 +85,27 @@ def load_from_disk_post() -> werkzeug.Response: else: malcontent_dir_path = tmpdir_child - state = t.cast(_app.WebUIApp, flask.current_app)._haketilo_state - try: - state.import_packages(malcontent_dir_path) + _app.get_haketilo_state().import_packages(malcontent_dir_path) except: raise InvalidUploadedMalcontent() return flask.redirect(flask.url_for('.packages')) @bp.route('/packages') -def packages() -> flask.Response: - state = t.cast(_app.WebUIApp, flask.current_app)._haketilo_state +def packages() -> werkzeug.Response: + store = _app.get_haketilo_state().mapping_version_store() html = flask.render_template( 'packages.html.jinja', - display_infos = state.mapping_version_store().get_display_infos() + display_infos = store.get_display_infos() ) return flask.make_response(html, 200) @bp.route('/packages/view/') -def show_package(mapping_id: str) -> flask.Response: - state = t.cast(_app.WebUIApp, flask.current_app)._haketilo_state - +def show_package(mapping_id: str) -> werkzeug.Response: try: - store = state.mapping_version_store() + store = _app.get_haketilo_state().mapping_version_store() display_info = store.get(mapping_id).get_display_info() html = flask.render_template( -- cgit v1.2.3