From db30f203410eaa9e650b2f1854561120786a608f Mon Sep 17 00:00:00 2001 From: x4base Date: Thu, 16 Jun 2016 10:55:11 -0500 Subject: [PATCH] Only initiate permissions of valid metrics (#630) --- caravel/models.py | 6 ++++-- caravel/utils.py | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/caravel/models.py b/caravel/models.py index 1fc927981f1d7..aec3d11f57829 100644 --- a/caravel/models.py +++ b/caravel/models.py @@ -873,7 +873,7 @@ def perm(self): return ( "{parent_name}.[{obj.metric_name}](id:{obj.id})" ).format(obj=self, - parent_name=self.table.full_name) + parent_name=self.table.full_name) if self.table else None class TableColumn(Model, AuditMixinNullable): @@ -1372,7 +1372,9 @@ def perm(self): return ( "{parent_name}.[{obj.metric_name}](id:{obj.id})" ).format(obj=self, - parent_name=self.datasource.full_name) + parent_name=self.datasource.full_name + ) if self.datasource else None + class DruidColumn(Model, AuditMixinNullable): diff --git a/caravel/utils.py b/caravel/utils.py index 5b59e4d0f5844..6ac360cbc5f99 100644 --- a/caravel/utils.py +++ b/caravel/utils.py @@ -228,7 +228,7 @@ def init_metrics_perm(caravel, metrics=None): for model in [models.SqlMetric, models.DruidMetric]: metrics += list(db.session.query(model).all()) - metric_perms = [metric.perm for metric in metrics] + metric_perms = filter(None, [metric.perm for metric in metrics]) for metric_perm in metric_perms: merge_perm(sm, 'metric_access', metric_perm)