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

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

commit 5082f0a9d5402120b329d3fb5e6c31fe5237b57a
Author: Beto Dealmeida <[email protected]>
AuthorDate: Wed Jan 22 15:58:18 2025 -0500

    fix: proper URL building
---
 superset/dashboards/permalink/api.py | 5 ++---
 superset/explore/permalink/api.py    | 5 ++---
 superset/sqllab/permalink/api.py     | 5 ++---
 3 files changed, 6 insertions(+), 9 deletions(-)

diff --git a/superset/dashboards/permalink/api.py 
b/superset/dashboards/permalink/api.py
index a6ae2910f4..208cda2a1f 100644
--- a/superset/dashboards/permalink/api.py
+++ b/superset/dashboards/permalink/api.py
@@ -16,7 +16,7 @@
 # under the License.
 import logging
 
-from flask import request, Response
+from flask import request, Response, url_for
 from flask_appbuilder.api import expose, protect, safe
 from marshmallow import ValidationError
 
@@ -98,8 +98,7 @@ class DashboardPermalinkRestApi(BaseSupersetApi):
                 dashboard_id=pk,
                 state=state,
             ).run()
-            http_origin = request.headers.environ.get("HTTP_ORIGIN")
-            url = f"{http_origin}/superset/dashboard/p/{key}/"
+            url = url_for("Superset.dashboard_permalink", key=key, 
_external=True)
             return self.response(201, key=key, url=url)
         except (ValidationError, DashboardPermalinkInvalidStateError) as ex:
             return self.response(400, message=str(ex))
diff --git a/superset/explore/permalink/api.py 
b/superset/explore/permalink/api.py
index bc9bd1cf67..a554225719 100644
--- a/superset/explore/permalink/api.py
+++ b/superset/explore/permalink/api.py
@@ -16,7 +16,7 @@
 # under the License.
 import logging
 
-from flask import request, Response
+from flask import request, Response, url_for
 from flask_appbuilder.api import expose, protect, safe
 from marshmallow import ValidationError
 
@@ -95,8 +95,7 @@ class ExplorePermalinkRestApi(BaseSupersetApi):
         try:
             state = self.add_model_schema.load(request.json)
             key = CreateExplorePermalinkCommand(state=state).run()
-            http_origin = request.headers.environ.get("HTTP_ORIGIN")
-            url = f"{http_origin}/superset/explore/p/{key}/"
+            url = url_for("ExplorePermalinkView.permalink", key=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/sqllab/permalink/api.py b/superset/sqllab/permalink/api.py
index c86fb99a5e..9ca0d66a91 100644
--- a/superset/sqllab/permalink/api.py
+++ b/superset/sqllab/permalink/api.py
@@ -16,7 +16,7 @@
 # under the License.
 import logging
 
-from flask import request, Response
+from flask import request, Response, url_for
 from flask_appbuilder.api import expose, protect, safe
 from marshmallow import ValidationError
 
@@ -87,8 +87,7 @@ class SqlLabPermalinkRestApi(BaseSupersetApi):
         try:
             state = self.add_model_schema.load(request.json)
             key = CreateSqlLabPermalinkCommand(state=state).run()
-            http_origin = request.headers.environ.get("HTTP_ORIGIN")
-            url = f"{http_origin}/sqllab/p/{key}"
+            url = url_for("SqllabView.root", key=key, _external=True)
             return self.response(201, key=key, url=url)
         except ValidationError as ex:
             return self.response(400, message=ex.messages)

Reply via email to