fix(explore): Persist URL params to form-data (#21792)
This commit is contained in:
parent
f4fa2e1115
commit
b1bf25e98c
|
|
@ -19,7 +19,7 @@ from abc import ABC
|
|||
from typing import Any, cast, Dict, Optional
|
||||
|
||||
import simplejson as json
|
||||
from flask import current_app as app
|
||||
from flask import current_app, request
|
||||
from flask_babel import gettext as __, lazy_gettext as _
|
||||
from sqlalchemy.exc import SQLAlchemyError
|
||||
|
||||
|
|
@ -121,7 +121,7 @@ class GetExploreCommand(BaseCommand, ABC):
|
|||
dataset_name = dataset.name if dataset else _("[Missing Dataset]")
|
||||
|
||||
if dataset:
|
||||
if app.config["ENABLE_ACCESS_REQUEST"] and (
|
||||
if current_app.config["ENABLE_ACCESS_REQUEST"] and (
|
||||
not security_manager.can_access_datasource(dataset)
|
||||
):
|
||||
message = __(security_manager.get_datasource_access_error_msg(dataset))
|
||||
|
|
@ -139,9 +139,10 @@ class GetExploreCommand(BaseCommand, ABC):
|
|||
str(self._dataset_id) + "__" + cast(str, self._dataset_type)
|
||||
)
|
||||
|
||||
# On explore, merge legacy and extra filters into the form data
|
||||
# On explore, merge legacy/extra filters and URL params into the form data
|
||||
utils.convert_legacy_filters_into_adhoc(form_data)
|
||||
utils.merge_extra_filters(form_data)
|
||||
utils.merge_request_params(form_data, request.args)
|
||||
|
||||
dummy_dataset_data: Dict[str, Any] = {
|
||||
"type": self._dataset_type,
|
||||
|
|
|
|||
|
|
@ -226,3 +226,15 @@ def test_wrong_endpoint(mock_get_datasource, test_client, login_as_admin, datase
|
|||
data = json.loads(resp.data.decode("utf-8"))
|
||||
assert resp.status_code == 302
|
||||
assert data["redirect"] == dataset.default_endpoint
|
||||
|
||||
|
||||
def test_get_url_params(test_client, login_as_admin, chart_id):
|
||||
resp = test_client.get(f"api/v1/explore/?slice_id={chart_id}&foo=bar")
|
||||
assert resp.status_code == 200
|
||||
data = json.loads(resp.data.decode("utf-8"))
|
||||
result = data.get("result")
|
||||
|
||||
assert result["form_data"]["url_params"] == {
|
||||
"foo": "bar",
|
||||
"slice_id": str(chart_id),
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue