fix(sqllab): correct URL format for SQL Lab permalinks (#32154)
This commit is contained in:
parent
c5f4a7f302
commit
f9f8c5d07a
|
|
@ -87,7 +87,7 @@ class SqlLabPermalinkRestApi(BaseSupersetApi):
|
||||||
try:
|
try:
|
||||||
state = self.add_model_schema.load(request.json)
|
state = self.add_model_schema.load(request.json)
|
||||||
key = CreateSqlLabPermalinkCommand(state=state).run()
|
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)
|
return self.response(201, key=key, url=url)
|
||||||
except ValidationError as ex:
|
except ValidationError as ex:
|
||||||
return self.response(400, message=ex.messages)
|
return self.response(400, message=ex.messages)
|
||||||
|
|
|
||||||
|
|
@ -37,17 +37,25 @@ class SqllabView(BaseSupersetView):
|
||||||
method_permission_name = MODEL_API_RW_METHOD_PERMISSION_MAP
|
method_permission_name = MODEL_API_RW_METHOD_PERMISSION_MAP
|
||||||
|
|
||||||
@expose("/", methods=["GET", "POST"])
|
@expose("/", methods=["GET", "POST"])
|
||||||
@expose("/p/<string:permalink>/", methods=["GET"])
|
|
||||||
@has_access
|
@has_access
|
||||||
@permission_name("read")
|
@permission_name("read")
|
||||||
@event_logger.log_this
|
@event_logger.log_this
|
||||||
def root(self, **kwargs: Any) -> FlaskResponse:
|
def root(self, **kwargs: Any) -> FlaskResponse:
|
||||||
|
"""Handles the default SQL Lab page."""
|
||||||
payload = {}
|
payload = {}
|
||||||
if form_data := request.form.get("form_data"):
|
if form_data := request.form.get("form_data"):
|
||||||
with contextlib.suppress(json.JSONDecodeError):
|
with contextlib.suppress(json.JSONDecodeError):
|
||||||
payload["requested_query"] = json.loads(form_data)
|
payload["requested_query"] = json.loads(form_data)
|
||||||
return self.render_app_template(payload)
|
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",))
|
@expose("/history/", methods=("GET",))
|
||||||
@has_access
|
@has_access
|
||||||
@permission_name("read")
|
@permission_name("read")
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue