fix: Use RLS clause instead of ID for cache key (#25229)

This commit is contained in:
Jack Fragassi
2023-09-18 11:37:35 -07:00
committed by GitHub
parent c8c94825ce
commit fba66c6250
2 changed files with 29 additions and 12 deletions

View File

@@ -305,6 +305,21 @@ class TestRowLevelSecurity(SupersetTestCase):
assert not self.NAMES_Q_REGEX.search(sql)
assert not self.BASE_FILTER_REGEX.search(sql)
@pytest.mark.usefixtures("load_birth_names_dashboard_with_slices")
def test_get_rls_cache_key(self):
g.user = self.get_user(username="admin")
tbl = self.get_table(name="birth_names")
clauses = security_manager.get_rls_cache_key(tbl)
assert clauses == []
g.user = self.get_user(username="gamma")
clauses = security_manager.get_rls_cache_key(tbl)
assert clauses == [
"name like 'A%' or name like 'B%'-name",
"name like 'Q%'-name",
"gender = 'boy'-gender",
]
class TestRowLevelSecurityCreateAPI(SupersetTestCase):
@pytest.mark.usefixtures("load_birth_names_dashboard_with_slices")