Data sources: show data source menu to users who only have access to create a data source (#78347)

* show data source menu to users who only have access to create a data source

* return early if missing permissions
This commit is contained in:
Ieva 2023-11-20 13:59:02 +00:00 committed by GitHub
parent 72db9739c7
commit 87c3703a0d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 5 additions and 2 deletions

View File

@ -26,10 +26,10 @@ var (
// ConfigurationPageAccess is used to protect the "Configure > Data sources" tab access
ConfigurationPageAccess = accesscontrol.EvalAny(
accesscontrol.EvalPermission(accesscontrol.ActionDatasourcesExplore),
accesscontrol.EvalPermission(ActionCreate),
accesscontrol.EvalAll(
accesscontrol.EvalPermission(ActionRead),
accesscontrol.EvalAny(
accesscontrol.EvalPermission(ActionCreate),
accesscontrol.EvalPermission(ActionDelete),
accesscontrol.EvalPermission(ActionWrite),
),

View File

@ -22,7 +22,7 @@ import { ROUTES as CONNECTIONS_ROUTES } from 'app/features/connections/constants
import { getDatasourceSrv } from 'app/features/plugins/datasource_srv';
import { getPluginSettings } from 'app/features/plugins/pluginSettings';
import { importDataSourcePlugin } from 'app/features/plugins/plugin_loader';
import { DataSourcePluginCategory, ThunkDispatch, ThunkResult } from 'app/types';
import { AccessControlAction, DataSourcePluginCategory, ThunkDispatch, ThunkResult } from 'app/types';
import * as api from '../api';
import { DATASOURCES_ROUTES } from '../constants';
@ -177,6 +177,9 @@ export const testDataSource = (
export function loadDataSources(): ThunkResult<Promise<void>> {
return async (dispatch) => {
if (!contextSrv.hasPermission(AccessControlAction.DataSourcesRead)) {
return;
}
dispatch(dataSourcesLoad());
const response = await api.getDataSources();
dispatch(dataSourcesLoaded(response));