From 4a3009406a568735cf7826ff53cff26bec797b14 Mon Sep 17 00:00:00 2001 From: Enrique Macip Date: Sat, 16 Mar 2019 17:33:45 +0000 Subject: [PATCH] User can turn off download - export csv from a dashboard (#6821) * User can turn off download - export csv from a dashboard * Revert changes in the backendSync * Fix space error in the MenuItem Export CSV --- .../dashboard/components/gridComponents/Chart_spec.jsx | 1 + superset/assets/src/dashboard/components/SliceHeader.jsx | 4 ++++ .../assets/src/dashboard/components/SliceHeaderControls.jsx | 6 +++++- .../src/dashboard/components/gridComponents/Chart.jsx | 3 +++ superset/assets/src/dashboard/containers/Chart.jsx | 1 + superset/assets/src/dashboard/reducers/getInitialState.js | 1 + superset/views/core.py | 2 ++ 7 files changed, 17 insertions(+), 1 deletion(-) diff --git a/superset/assets/spec/javascripts/dashboard/components/gridComponents/Chart_spec.jsx b/superset/assets/spec/javascripts/dashboard/components/gridComponents/Chart_spec.jsx index 5e75edfcd..a96a44caa 100644 --- a/superset/assets/spec/javascripts/dashboard/components/gridComponents/Chart_spec.jsx +++ b/superset/assets/spec/javascripts/dashboard/components/gridComponents/Chart_spec.jsx @@ -58,6 +58,7 @@ describe('Chart', () => { editMode: false, isExpanded: false, supersetCanExplore: false, + supersetCanCSV: false, sliceCanEdit: false, }; diff --git a/superset/assets/src/dashboard/components/SliceHeader.jsx b/superset/assets/src/dashboard/components/SliceHeader.jsx index 9da155d25..913a00dc4 100644 --- a/superset/assets/src/dashboard/components/SliceHeader.jsx +++ b/superset/assets/src/dashboard/components/SliceHeader.jsx @@ -41,6 +41,7 @@ const propTypes = { annotationError: PropTypes.object, sliceName: PropTypes.string, supersetCanExplore: PropTypes.bool, + supersetCanCSV: PropTypes.bool, sliceCanEdit: PropTypes.bool, }; @@ -61,6 +62,7 @@ const defaultProps = { isExpanded: false, sliceName: '', supersetCanExplore: false, + supersetCanCSV: false, sliceCanEdit: false, }; @@ -82,6 +84,7 @@ class SliceHeader extends React.PureComponent { innerRef, sliceName, supersetCanExplore, + supersetCanCSV, sliceCanEdit, editMode, updateSliceName, @@ -133,6 +136,7 @@ class SliceHeader extends React.PureComponent { exploreChart={exploreChart} exportCSV={exportCSV} supersetCanExplore={supersetCanExplore} + supersetCanCSV={supersetCanCSV} sliceCanEdit={sliceCanEdit} /> )} diff --git a/superset/assets/src/dashboard/components/SliceHeaderControls.jsx b/superset/assets/src/dashboard/components/SliceHeaderControls.jsx index c22870220..18a92071f 100644 --- a/superset/assets/src/dashboard/components/SliceHeaderControls.jsx +++ b/superset/assets/src/dashboard/components/SliceHeaderControls.jsx @@ -29,6 +29,7 @@ const propTypes = { cachedDttm: PropTypes.string, updatedDttm: PropTypes.number, supersetCanExplore: PropTypes.bool, + supersetCanCSV: PropTypes.bool, sliceCanEdit: PropTypes.bool, toggleExpandSlice: PropTypes.func, forceRefresh: PropTypes.func, @@ -46,6 +47,7 @@ const defaultProps = { isCached: false, isExpanded: false, supersetCanExplore: false, + supersetCanCSV: false, sliceCanEdit: false, }; @@ -134,7 +136,9 @@ class SliceHeaderControls extends React.PureComponent { )} - {t('Export CSV')} + {this.props.supersetCanCSV && ( + {t('Export CSV')} + )} {this.props.supersetCanExplore && ( diff --git a/superset/assets/src/dashboard/components/gridComponents/Chart.jsx b/superset/assets/src/dashboard/components/gridComponents/Chart.jsx index 1765525cb..d8b01d011 100644 --- a/superset/assets/src/dashboard/components/gridComponents/Chart.jsx +++ b/superset/assets/src/dashboard/components/gridComponents/Chart.jsx @@ -53,6 +53,7 @@ const propTypes = { isExpanded: PropTypes.bool.isRequired, isCached: PropTypes.bool, supersetCanExplore: PropTypes.bool.isRequired, + supersetCanCSV: PropTypes.bool.isRequired, sliceCanEdit: PropTypes.bool.isRequired, }; @@ -195,6 +196,7 @@ class Chart extends React.Component { toggleExpandSlice, timeout, supersetCanExplore, + supersetCanCSV, sliceCanEdit, } = this.props; @@ -229,6 +231,7 @@ class Chart extends React.Component { updateSliceName={updateSliceName} sliceName={sliceName} supersetCanExplore={supersetCanExplore} + supersetCanCSV={supersetCanCSV} sliceCanEdit={sliceCanEdit} /> diff --git a/superset/assets/src/dashboard/containers/Chart.jsx b/superset/assets/src/dashboard/containers/Chart.jsx index ddec2fff8..1e0e64c60 100644 --- a/superset/assets/src/dashboard/containers/Chart.jsx +++ b/superset/assets/src/dashboard/containers/Chart.jsx @@ -63,6 +63,7 @@ function mapStateToProps( editMode: dashboardState.editMode, isExpanded: !!dashboardState.expandedSlices[id], supersetCanExplore: !!dashboardInfo.superset_can_explore, + supersetCanCSV: !!dashboardInfo.superset_can_csv, sliceCanEdit: !!dashboardInfo.slice_can_edit, }; } diff --git a/superset/assets/src/dashboard/reducers/getInitialState.js b/superset/assets/src/dashboard/reducers/getInitialState.js index 9b093cdbf..57354c86a 100644 --- a/superset/assets/src/dashboard/reducers/getInitialState.js +++ b/superset/assets/src/dashboard/reducers/getInitialState.js @@ -174,6 +174,7 @@ export default function(bootstrapData) { dash_edit_perm: dashboard.dash_edit_perm, dash_save_perm: dashboard.dash_save_perm, superset_can_explore: dashboard.superset_can_explore, + superset_can_csv: dashboard.superset_can_csv, slice_can_edit: dashboard.slice_can_edit, common: { flash_messages: common.flash_messages, diff --git a/superset/views/core.py b/superset/views/core.py index 197dbe75b..d3cfb8839 100755 --- a/superset/views/core.py +++ b/superset/views/core.py @@ -2175,6 +2175,7 @@ class Superset(BaseSupersetView): security_manager.can_access('can_save_dash', 'Superset') dash_save_perm = security_manager.can_access('can_save_dash', 'Superset') superset_can_explore = security_manager.can_access('can_explore', 'Superset') + superset_can_csv = security_manager.can_access('can_csv', 'Superset') slice_can_edit = security_manager.can_access('can_edit', 'SliceModelView') standalone_mode = request.args.get('standalone') == 'true' @@ -2196,6 +2197,7 @@ class Superset(BaseSupersetView): 'dash_save_perm': dash_save_perm, 'dash_edit_perm': dash_edit_perm, 'superset_can_explore': superset_can_explore, + 'superset_can_csv': superset_can_csv, 'slice_can_edit': slice_can_edit, })