You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by bk...@apache.org on 2024/02/13 03:12:41 UTC

(superset) 05/05: Show report and alerts to all users based on config

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

bkyryliuk pushed a commit to branch release/3.1.0.rc4
in repository https://gitbox.apache.org/repos/asf/superset.git

commit 9ecf5dc990b29d63e3d16cfee6dbc37038c25839
Author: Bogdan <bo...@dropbox.com>
AuthorDate: Mon Feb 12 19:10:21 2024 -0800

    Show report and alerts to all users based on config
---
 superset/config.py          | 2 ++
 superset/reports/filters.py | 9 ++++++++-
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/superset/config.py b/superset/config.py
index ca801442d9..138df6cc1c 100644
--- a/superset/config.py
+++ b/superset/config.py
@@ -1328,6 +1328,8 @@ ALERT_REPORTS_QUERY_EXECUTION_MAX_TRIES = 1
 ALERT_REPORTS_MIN_CUSTOM_SCREENSHOT_WIDTH = 600
 ALERT_REPORTS_MAX_CUSTOM_SCREENSHOT_WIDTH = 2400
 
+ALERT_REPORTS_READ_ONLY_FULL_ACCESS = False
+
 # A custom prefix to use on all Alerts & Reports emails
 EMAIL_REPORTS_SUBJECT_PREFIX = "[Report] "
 
diff --git a/superset/reports/filters.py b/superset/reports/filters.py
index a03238b640..e1733a145c 100644
--- a/superset/reports/filters.py
+++ b/superset/reports/filters.py
@@ -20,15 +20,22 @@ from flask_babel import lazy_gettext as _
 from sqlalchemy import or_
 from sqlalchemy.orm.query import Query
 
-from superset import db, security_manager
+from superset import app, db, security_manager
 from superset.reports.models import ReportSchedule
 from superset.views.base import BaseFilter
 
 
+config = app.config
+
+
 class ReportScheduleFilter(BaseFilter):  # pylint: disable=too-few-public-methods
     def apply(self, query: Query, value: Any) -> Query:
         if security_manager.can_access_all_datasources():
             return query
+
+        # show reports and alerts to all users regardless ownership
+        if config["ALERT_REPORTS_READ_ONLY_FULL_ACCESS"]:
+            return query
         owner_ids_query = (
             db.session.query(ReportSchedule.id)
             .join(ReportSchedule.owners)