AccessControl: Add accesscontrol metadata to datasources DTOs (#42675)

* AccessControl: Provide scope to frontend

* Covering datasources with accesscontrol metadata

* Write benchmark tests for GetResourcesMetadata

* Add accesscontrol util and interface

* Add the hasPermissionInMetadata function in the frontend access control code

* Use IsDisabled rather that performing a feature toggle check

Co-authored-by: Karl Persson <kalle.persson@grafana.com>
This commit is contained in:
Gabriel MABILLE
2021-12-15 12:08:15 +01:00
committed by GitHub
parent 2b1ed43cb2
commit c7cabdfd6f
19 changed files with 364 additions and 71 deletions

View File

@@ -25,6 +25,7 @@ import {
testDataSourceSucceeded,
} from './reducers';
import { getDataSource, getDataSourceMeta } from './selectors';
import { addAccessControlQueryParam } from 'app/core/utils/accessControl';
export interface DataSourceTypesLoadedPayload {
plugins: DataSourcePluginMeta[];
@@ -154,7 +155,7 @@ export async function getDataSourceUsingUidOrId(uid: string | number): Promise<D
const byUid = await lastValueFrom(
getBackendSrv().fetch<DataSourceSettings>({
method: 'GET',
url: `/api/datasources/uid/${uid}`,
url: addAccessControlQueryParam(`/api/datasources/uid/${uid}`),
showErrorAlert: false,
})
);
@@ -172,7 +173,7 @@ export async function getDataSourceUsingUidOrId(uid: string | number): Promise<D
const response = await lastValueFrom(
getBackendSrv().fetch<DataSourceSettings>({
method: 'GET',
url: `/api/datasources/${id}`,
url: addAccessControlQueryParam(`/api/datasources/${id}`),
showErrorAlert: false,
})
);