AccessControl: add permission to datasource permissions navigation selection (#38758)

This commit is contained in:
Gabriel MABILLE
2021-09-06 16:18:18 +02:00
committed by GitHub
parent d5956ce4b7
commit cf7034ee50
2 changed files with 12 additions and 7 deletions

View File

@@ -1,5 +1,7 @@
import { DataSourceSettings, PluginType, PluginInclude, NavModel, NavModelItem } from '@grafana/data'; import { DataSourceSettings, PluginType, PluginInclude, NavModel, NavModelItem } from '@grafana/data';
import config from 'app/core/config'; import config from 'app/core/config';
import { contextSrv } from 'app/core/core';
import { AccessControlAction } from 'app/types';
import { GenericDataSourcePlugin } from '../settings/PluginSettings'; import { GenericDataSourcePlugin } from '../settings/PluginSettings';
export function buildNavModel(dataSource: DataSourceSettings, plugin: GenericDataSourcePlugin): NavModelItem { export function buildNavModel(dataSource: DataSourceSettings, plugin: GenericDataSourcePlugin): NavModelItem {
@@ -46,13 +48,15 @@ export function buildNavModel(dataSource: DataSourceSettings, plugin: GenericDat
} }
if (config.licenseInfo.hasLicense) { if (config.licenseInfo.hasLicense) {
navModel.children!.push({ if (contextSrv.hasPermission(AccessControlAction.DataSourcesPermissionsRead)) {
active: false, navModel.children!.push({
icon: 'lock', active: false,
id: `datasource-permissions-${dataSource.id}`, icon: 'lock',
text: 'Permissions', id: `datasource-permissions-${dataSource.id}`,
url: `datasources/edit/${dataSource.id}/permissions`, text: 'Permissions',
}); url: `datasources/edit/${dataSource.id}/permissions`,
});
}
navModel.children!.push({ navModel.children!.push({
active: false, active: false,

View File

@@ -39,6 +39,7 @@ export enum AccessControlAction {
DataSourcesCreate = 'datasources:create', DataSourcesCreate = 'datasources:create',
DataSourcesWrite = 'datasources:write', DataSourcesWrite = 'datasources:write',
DataSourcesDelete = 'datasources:delete', DataSourcesDelete = 'datasources:delete',
DataSourcesPermissionsRead = 'datasources.permissions:read',
ActionServerStatsRead = 'server.stats:read', ActionServerStatsRead = 'server.stats:read',
} }