aboutsummaryrefslogtreecommitdiff
path: root/src/hydrilla/proxy/web_ui/items.py
diff options
context:
space:
mode:
authorWojtek Kosior <koszko@koszko.org>2022-10-25 11:30:45 +0200
committerWojtek Kosior <koszko@koszko.org>2022-10-25 11:30:45 +0200
commit37b3cf9fb2a56cfa980844f527d834916b38cca8 (patch)
tree288a3b3ddc7e1fe115d568480f44313173183c2d /src/hydrilla/proxy/web_ui/items.py
parent44c09ab27ce8407f4fc5c75df9cdf309df8463eb (diff)
downloadhaketilo-hydrilla-37b3cf9fb2a56cfa980844f527d834916b38cca8.tar.gz
haketilo-hydrilla-37b3cf9fb2a56cfa980844f527d834916b38cca8.zip
[proxy] make Haketilo popup functional
* Ad hoc payload creation was additionally fixed in this commit. * Addition on newly created script blocking/allowing rules to pattern tree was additionally fixed in this commit. It is no longer necessary to restart Haketilo for new rules to come into effect.
Diffstat (limited to 'src/hydrilla/proxy/web_ui/items.py')
-rw-r--r--src/hydrilla/proxy/web_ui/items.py33
1 files changed, 29 insertions, 4 deletions
diff --git a/src/hydrilla/proxy/web_ui/items.py b/src/hydrilla/proxy/web_ui/items.py
index 808fb6d..d0f0f2e 100644
--- a/src/hydrilla/proxy/web_ui/items.py
+++ b/src/hydrilla/proxy/web_ui/items.py
@@ -390,8 +390,8 @@ def show_required_mapping(
return flask.redirect(url)
-@bp.route('/package/viewpayload/<string:item_version_id>/<string:pattern>/<string:lib_identifier>')
-def show_payload(item_version_id: str, pattern: str, lib_identifier: str) \
+@bp.route('/package/viewlibrary/<string:item_version_id>/<string:pattern>/<string:lib_identifier>')
+def show_package_library(item_version_id: str, pattern: str, lib_identifier: str) \
-> werkzeug.Response:
state = _app.get_haketilo_state()
@@ -406,10 +406,35 @@ def show_payload(item_version_id: str, pattern: str, lib_identifier: str) \
item_version_id = resource_ver_ref.id
)
except st.MissingItemError:
- resource_ref = \
- state.resource_store().get_by_identifier(lib_identifier)
+ resource_ref = state.resource_store().get_by_identifier(
+ lib_identifier
+ )
url = flask.url_for('.show_library', item_id=resource_ref.id)
except st.MissingItemError:
flask.abort(404)
return flask.redirect(url)
+
+@bp.route('/package/viewbypayload/<string:payload_id>/<string:package_identifier>')
+def show_payload_package(payload_id: str, package_identifier: str) \
+ -> werkzeug.Response:
+ state = _app.get_haketilo_state()
+
+ try:
+ ref = state.payload_store().get(payload_id)
+
+ try:
+ mapping_ver_ref = ref.get_display_info().mapping_info.ref
+ url = flask.url_for(
+ '.show_package_version',
+ item_version_id = mapping_ver_ref.id
+ )
+ except st.MissingItemError:
+ mapping_ref = state.mapping_store().get_by_identifier(
+ package_identifier
+ )
+ url = flask.url_for('.show_package', item_id=mapping_ref.id)
+ except st.MissingItemError:
+ flask.abort(404)
+
+ return flask.redirect(url)