From 3a97e806e91fd6869e01bc7d8914057d249a6cd9 Mon Sep 17 00:00:00 2001 From: lanasalameh1 Date: Tue, 26 Mar 2024 11:51:41 +0200 Subject: [PATCH] add resource type filter per env --- src/powerpwn/powerdump/gui/gui.py | 2 ++ src/powerpwn/powerdump/gui/prep.py | 23 ++++++++++++++++--- .../gui/templates/canvasapps_table.html | 4 ++-- .../gui/templates/connections_table.html | 2 +- .../gui/templates/connectors_table.html | 4 +++- .../gui/templates/logic_flows_table.html | 18 +++++++-------- 6 files changed, 37 insertions(+), 16 deletions(-) diff --git a/src/powerpwn/powerdump/gui/gui.py b/src/powerpwn/powerdump/gui/gui.py index 5b26fd8..1002e62 100644 --- a/src/powerpwn/powerdump/gui/gui.py +++ b/src/powerpwn/powerdump/gui/gui.py @@ -7,6 +7,7 @@ from powerpwn.cli.const import LOGGER_NAME from powerpwn.powerdump.gui.prep import ( + env_resources_table_by_resource_type_wrapper, env_resources_table_wrapper, flt_connection_table_wrapper, flt_resource_wrapper, @@ -29,6 +30,7 @@ def run(self, cache_path: str) -> None: register_specs(app=app, cache_path=cache_path) app.route("/")(full_resources_table_wrapper(cache_path=cache_path)) app.route("/env/")(env_resources_table_wrapper(cache_path=cache_path)) + app.route("/env//")(env_resources_table_by_resource_type_wrapper(cache_path=cache_path)) app.route("/credentials")(full_connection_table_wrapper(cache_path=cache_path)) app.route("/automation")(full_logic_flows_table_wrapper(cache_path=cache_path)) app.route("/app/")(full_canvasapps_table_wrapper(cache_path)) diff --git a/src/powerpwn/powerdump/gui/prep.py b/src/powerpwn/powerdump/gui/prep.py index e54b9d2..aa8f37e 100644 --- a/src/powerpwn/powerdump/gui/prep.py +++ b/src/powerpwn/powerdump/gui/prep.py @@ -54,12 +54,29 @@ def full_resources_table(): def env_resources_table_wrapper(cache_path: str): def env_resources_table(env_id: str): resources = list(load_resources(cache_path=cache_path, env_id=env_id)) - - return render_template("resources_table.html", title=f"{TOOL_NAME} - environment {env_id}", resources=resources) + title = f"{TOOL_NAME} - environment {env_id}" + return render_template("resources_table.html", title=title, resources=resources) return env_resources_table +def env_resources_table_by_resource_type_wrapper(cache_path: str): + def env_per_resource_type_table(env_id: str, resource_type: str): + if resource_type == "app": + resources = load_canvasapps(cache_path, env_id) + elif resource_type == "credentials": + resources = load_connections(cache_path, env_id, with_logic_flows=False) + elif resource_type == "automation": + resources = load_logic_flows(cache_path, env_id) + elif resource_type == "connector": + resources = load_connectors(cache_path, env_id) + title = f"{TOOL_NAME} - environment {env_id} - {resource_type}" + + return render_template("resources_table.html", title=title, resources=resources) + + return env_per_resource_type_table + + def full_connection_table_wrapper(cache_path: str): def full_connection_table(): connections = list(load_connections(cache_path=cache_path, with_logic_flows=False)) @@ -108,7 +125,7 @@ def full_connector_table(): def flt_resource_wrapper(cache_path: str): def get_resource_page(resource_type: str, env_id: str, resource_id: str): resource: Optional[ResourceEntityBase] = None - if resource_type == "app": + if resource_type in ("app", "canvas_app"): resource = get_canvasapp(cache_path, env_id, resource_id) elif resource_type in ("credentials", "automation", "connection"): resource = get_connection(cache_path, env_id, resource_id) diff --git a/src/powerpwn/powerdump/gui/templates/canvasapps_table.html b/src/powerpwn/powerdump/gui/templates/canvasapps_table.html index 68a14a1..676164a 100644 --- a/src/powerpwn/powerdump/gui/templates/canvasapps_table.html +++ b/src/powerpwn/powerdump/gui/templates/canvasapps_table.html @@ -4,7 +4,7 @@ - + @@ -16,7 +16,7 @@ {% for canvasapp in resources %} - + diff --git a/src/powerpwn/powerdump/gui/templates/connections_table.html b/src/powerpwn/powerdump/gui/templates/connections_table.html index 7c3ae73..23791a3 100644 --- a/src/powerpwn/powerdump/gui/templates/connections_table.html +++ b/src/powerpwn/powerdump/gui/templates/connections_table.html @@ -21,7 +21,7 @@ - + diff --git a/src/powerpwn/powerdump/gui/templates/connectors_table.html b/src/powerpwn/powerdump/gui/templates/connectors_table.html index 4ec94e5..74811e3 100644 --- a/src/powerpwn/powerdump/gui/templates/connectors_table.html +++ b/src/powerpwn/powerdump/gui/templates/connectors_table.html @@ -4,7 +4,8 @@
Display nameApp Environment Version Created by
{{ canvasapp.display_name }}{{ canvasapp.environment_id }}{{ canvasapp.environment_id }} {{ canvasapp.version }} {{ canvasapp.created_by.email }} {{ canvasapp.created_at }}{{ connection.connection_id }} {{ connection.connector_id }} {{ connection.display_name }}{{ connection.environment_id }}{{ connection.environment_id }} {{ connection.is_valid }} {{ connection.last_modified_at }} {{ connection.expiration_time }}
- + + @@ -15,6 +16,7 @@ {% for connector in resources %} + diff --git a/src/powerpwn/powerdump/gui/templates/logic_flows_table.html b/src/powerpwn/powerdump/gui/templates/logic_flows_table.html index d779015..e9736f2 100644 --- a/src/powerpwn/powerdump/gui/templates/logic_flows_table.html +++ b/src/powerpwn/powerdump/gui/templates/logic_flows_table.html @@ -13,16 +13,16 @@ - {% for connection in resources %} + {% for automation in resources %} - - - - - - - - + + + + + + + + {% endfor %}
Display nameConnectorEnvironment Version Created by Created at
{{ connector.display_name }}{{ connector.environment_id }} {{ connector.version }} {{ connector.created_by }} {{ connector.created_at }}
{{ connection.connection_id }}{{ connection.display_name }}{{ connection.environment_id }}{{ connection.created_at }}{{ connection.created_by.email }}{{ connection.last_modified_at }}PlaygroundRaw {{ automation.connection_id }}{{ automation.display_name }}{{ automation.environment_id }} {{ automation.created_at }}{{ automation.created_by.email }}{{ automation.last_modified_at }}PlaygroundRaw