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")
