This is an automated email from the ASF dual-hosted git repository.

michaelsmolina pushed a commit to branch 5.0
in repository https://gitbox.apache.org/repos/asf/superset.git

commit 53d05a460d2fcba66d4d7cc194496986523e2fd1
Author: Levis Mbote <[email protected]>
AuthorDate: Fri Feb 7 19:53:29 2025 +0300

    fix(sqllab): correct URL format for SQL Lab permalinks (#32154)
    
    (cherry picked from commit f9f8c5d07a6bf960a597e7ff07d1564f514e8760)
---
 superset/sqllab/permalink/api.py |  2 +-
 superset/views/sqllab.py         | 10 +++++++++-
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/superset/sqllab/permalink/api.py b/superset/sqllab/permalink/api.py
index 35eae9f906..4bdd293414 100644
--- a/superset/sqllab/permalink/api.py
+++ b/superset/sqllab/permalink/api.py
@@ -87,7 +87,7 @@ class SqlLabPermalinkRestApi(BaseSupersetApi):
         try:
             state = self.add_model_schema.load(request.json)
             key = CreateSqlLabPermalinkCommand(state=state).run()
-            url = url_for("SqllabView.root", key=key, _external=True)
+            url = url_for("SqllabView.permalink_view", permalink=key, 
_external=True)
             return self.response(201, key=key, url=url)
         except ValidationError as ex:
             return self.response(400, message=ex.messages)
diff --git a/superset/views/sqllab.py b/superset/views/sqllab.py
index b34a3af7d4..740b241f13 100644
--- a/superset/views/sqllab.py
+++ b/superset/views/sqllab.py
@@ -37,17 +37,25 @@ class SqllabView(BaseSupersetView):
     method_permission_name = MODEL_API_RW_METHOD_PERMISSION_MAP
 
     @expose("/", methods=["GET", "POST"])
-    @expose("/p/<string:permalink>/", methods=["GET"])
     @has_access
     @permission_name("read")
     @event_logger.log_this
     def root(self, **kwargs: Any) -> FlaskResponse:
+        """Handles the default SQL Lab page."""
         payload = {}
         if form_data := request.form.get("form_data"):
             with contextlib.suppress(json.JSONDecodeError):
                 payload["requested_query"] = json.loads(form_data)
         return self.render_app_template(payload)
 
+    @expose("/p/<string:permalink>/", methods=["GET"])
+    @has_access
+    @permission_name("read")
+    @event_logger.log_this
+    def permalink_view(self, permalink: str, **kwargs: Any) -> FlaskResponse:
+        """Handles permalinks for SQL Lab."""
+        return self.root(permalink=permalink, **kwargs)
+
     @expose("/history/", methods=("GET",))
     @has_access
     @permission_name("read")

Reply via email to