Jelajahi Sumber

Merge pull request #11699 from grafana/11466-edit-row

fixed so user who can edit dashboard can edit row
Marcus Efraimsson 7 tahun lalu
induk
melakukan
d36efddcf7

+ 1 - 2
public/app/features/dashboard/dashgrid/DashboardRow.tsx

@@ -4,7 +4,6 @@ import { PanelModel } from '../panel_model';
 import { PanelContainer } from './PanelContainer';
 import templateSrv from 'app/features/templating/template_srv';
 import appEvents from 'app/core/app_events';
-import config from 'app/core/config';
 
 export interface DashboardRowProps {
   panel: PanelModel;
@@ -95,7 +94,7 @@ export class DashboardRow extends React.Component<DashboardRowProps, any> {
           {title}
           <span className="dashboard-row__panel_count">({hiddenPanels} hidden panels)</span>
         </a>
-        {config.bootData.user.orgRole !== 'Viewer' && (
+        {this.dashboard.meta.canEdit === true && (
           <div className="dashboard-row__actions">
             <a className="pointer" onClick={this.openSettings}>
               <i className="fa fa-cog" />

+ 6 - 8
public/app/features/dashboard/specs/DashboardRow.jest.tsx

@@ -2,17 +2,15 @@ import React from 'react';
 import { shallow } from 'enzyme';
 import { DashboardRow } from '../dashgrid/DashboardRow';
 import { PanelModel } from '../panel_model';
-import config from '../../../core/config';
 
 describe('DashboardRow', () => {
   let wrapper, panel, getPanelContainer, dashboardMock;
 
   beforeEach(() => {
-    dashboardMock = { toggleRow: jest.fn() };
-
-    config.bootData = {
-      user: {
-        orgRole: 'Admin',
+    dashboardMock = {
+      toggleRow: jest.fn(),
+      meta: {
+        canEdit: true,
       },
     };
 
@@ -41,8 +39,8 @@ describe('DashboardRow', () => {
     expect(wrapper.find('.dashboard-row__actions .pointer')).toHaveLength(2);
   });
 
-  it('should have zero actions as viewer', () => {
-    config.bootData.user.orgRole = 'Viewer';
+  it('should have zero actions when cannot edit', () => {
+    dashboardMock.meta.canEdit = false;
     panel = new PanelModel({ collapsed: false });
     wrapper = shallow(<DashboardRow panel={panel} getPanelContainer={getPanelContainer} />);
     expect(wrapper.find('.dashboard-row__actions .pointer')).toHaveLength(0);