Filter out unavailable databases (#3875)

This commit is contained in:
Dmitry Goryunov 2017-11-15 17:39:43 +01:00 committed by Maxime Beauchemin
parent 2e25fc4161
commit ae2205aeb5
1 changed files with 9 additions and 0 deletions

View File

@ -130,6 +130,14 @@ class SliceFilter(SupersetFilter):
return query.filter(self.model.perm.in_(perms))
class DatabaseFilter(SupersetFilter):
def apply(self, query, func):
if self.has_all_datasource_access():
return query
perms = self.get_view_menus('database_access')
return query.filter(self.model.perm.in_(perms))
class DashboardFilter(SupersetFilter):
"""List dashboards for which users have access to at least one slice"""
@ -203,6 +211,7 @@ class DatabaseView(SupersetModelView, DeleteMixin): # noqa
]
add_template = 'superset/models/database/add.html'
edit_template = 'superset/models/database/edit.html'
base_filters = [['perm', DatabaseFilter, lambda:[]]]
base_order = ('changed_on', 'desc')
description_columns = {
'sqlalchemy_uri': utils.markdown(