From 1844f7185f75d2233debbce3b7c8ed13a7aff44c Mon Sep 17 00:00:00 2001 From: Brandon Farmer Date: Wed, 2 May 2018 11:46:35 -0700 Subject: [PATCH] Disable temp var dropdowns for viewers when auth enabled --- ui/src/dashboards/components/TemplateControlBar.tsx | 6 ++++++ .../dashboards/components/TemplateControlDropdown.tsx | 11 ++++++++++- ui/src/dashboards/containers/DashboardPage.js | 4 ++++ 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/ui/src/dashboards/components/TemplateControlBar.tsx b/ui/src/dashboards/components/TemplateControlBar.tsx index 5bd9e3360d..319543b4e8 100644 --- a/ui/src/dashboards/components/TemplateControlBar.tsx +++ b/ui/src/dashboards/components/TemplateControlBar.tsx @@ -12,6 +12,8 @@ interface Props { isOpen: boolean onOpenTemplateManager: () => void onSelectTemplate: (id: string) => void + meRole: string + isUsingAuth: boolean } const TemplateControlBar: SFC = ({ @@ -19,6 +21,8 @@ const TemplateControlBar: SFC = ({ templates, onSelectTemplate, onOpenTemplateManager, + meRole, + isUsingAuth, }) => (
@@ -27,6 +31,8 @@ const TemplateControlBar: SFC = ({ templates.map(template => ( diff --git a/ui/src/dashboards/components/TemplateControlDropdown.tsx b/ui/src/dashboards/components/TemplateControlDropdown.tsx index b3bb99d09f..863031e7e9 100644 --- a/ui/src/dashboards/components/TemplateControlDropdown.tsx +++ b/ui/src/dashboards/components/TemplateControlDropdown.tsx @@ -4,8 +4,11 @@ import Dropdown from 'src/shared/components/Dropdown' import {calculateDropdownWidth} from 'src/dashboards/constants/templateControlBar' import {Template} from 'src/types/dashboard' +export const VIEWER_ROLE = 'viewer' interface Props { template: Template + meRole: string + isUsingAuth: boolean onSelectTemplate: (id: string) => void } @@ -13,7 +16,12 @@ interface Props { // the full array, and [item] to all `selected` values when we update // this component to support multiple values -const TemplateControlDropdown: SFC = ({template, onSelectTemplate}) => { +const TemplateControlDropdown: SFC = ({ + template, + onSelectTemplate, + isUsingAuth, + meRole, +}) => { const dropdownItems = template.values.map(value => ({ ...value, text: value.value, @@ -34,6 +42,7 @@ const TemplateControlDropdown: SFC = ({template, onSelectTemplate}) => { menuClass="dropdown-astronaut" useAutoComplete={true} selected={selectedItem.text} + disabled={isUsingAuth && (!meRole || meRole === VIEWER_ROLE)} onChoose={onSelectTemplate(template.id)} /> diff --git a/ui/src/dashboards/containers/DashboardPage.js b/ui/src/dashboards/containers/DashboardPage.js index b254641210..dcab483381 100644 --- a/ui/src/dashboards/containers/DashboardPage.js +++ b/ui/src/dashboards/containers/DashboardPage.js @@ -305,6 +305,8 @@ class DashboardPage extends Component { const {zoomedTimeRange} = this.state const {zoomedLower, zoomedUpper} = zoomedTimeRange const { + isUsingAuth, + meRole, source, sources, timeRange, @@ -426,6 +428,8 @@ class DashboardPage extends Component { {inPresentationMode || (