From c04f70c8278e3a674578ad4ff5818b9b4b69537d Mon Sep 17 00:00:00 2001 From: ygelfand Date: Wed, 23 Feb 2022 16:21:08 -0500 Subject: [PATCH 1/3] consider guest rls for building cache keys Signed-off-by: ygelfand --- superset/connectors/sqla/models.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/superset/connectors/sqla/models.py b/superset/connectors/sqla/models.py index ca1d4bc57a02..b25c8529a4a3 100644 --- a/superset/connectors/sqla/models.py +++ b/superset/connectors/sqla/models.py @@ -1769,6 +1769,10 @@ def has_extra_cache_key_calls(self, query_obj: QueryObjectDict) -> bool: templatable_statements += [ f.clause for f in security_manager.get_rls_filters(self) ] + if is_feature_enabled("EMBEDDED_SUPERSET"): + templatable_statements += [ + f.clause for f in security_manager.get_guest_rls_filters(self) + ] for statement in templatable_statements: if ExtraCache.regex.search(statement): return True From e3b87ea1917e0ab4309acbfa2e0215c759594911 Mon Sep 17 00:00:00 2001 From: ygelfand Date: Wed, 23 Feb 2022 17:29:12 -0500 Subject: [PATCH 2/3] fix object Signed-off-by: ygelfand --- superset/connectors/sqla/models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/superset/connectors/sqla/models.py b/superset/connectors/sqla/models.py index b25c8529a4a3..30bf0dea310d 100644 --- a/superset/connectors/sqla/models.py +++ b/superset/connectors/sqla/models.py @@ -1771,7 +1771,7 @@ def has_extra_cache_key_calls(self, query_obj: QueryObjectDict) -> bool: ] if is_feature_enabled("EMBEDDED_SUPERSET"): templatable_statements += [ - f.clause for f in security_manager.get_guest_rls_filters(self) + f['clause'] for f in security_manager.get_guest_rls_filters(self) ] for statement in templatable_statements: if ExtraCache.regex.search(statement): From 802f36096c63fbe3b9d8efae367252c76dad7716 Mon Sep 17 00:00:00 2001 From: ygelfand Date: Thu, 24 Feb 2022 07:26:32 -0500 Subject: [PATCH 3/3] fix formatting Signed-off-by: ygelfand --- superset/connectors/sqla/models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/superset/connectors/sqla/models.py b/superset/connectors/sqla/models.py index 30bf0dea310d..302935f8938e 100644 --- a/superset/connectors/sqla/models.py +++ b/superset/connectors/sqla/models.py @@ -1771,7 +1771,7 @@ def has_extra_cache_key_calls(self, query_obj: QueryObjectDict) -> bool: ] if is_feature_enabled("EMBEDDED_SUPERSET"): templatable_statements += [ - f['clause'] for f in security_manager.get_guest_rls_filters(self) + f["clause"] for f in security_manager.get_guest_rls_filters(self) ] for statement in templatable_statements: if ExtraCache.regex.search(statement):