Add permission checking to alert rules in the folders view (#47686)

This commit is contained in:
Konrad Lalik
2022-04-13 14:05:29 +02:00
committed by GitHub
parent 32511f3d06
commit d7516f11b3
2 changed files with 13 additions and 8 deletions
+11 -8
View File
@@ -1,6 +1,7 @@
import { NavModel, NavModelItem } from '@grafana/data';
import { contextSrv } from 'app/core/services/context_srv';
import { FolderDTO } from 'app/types';
import { AccessControlAction, FolderDTO } from 'app/types';
export function buildNavModel(folder: FolderDTO): NavModelItem {
const model = {
@@ -29,13 +30,15 @@ export function buildNavModel(folder: FolderDTO): NavModelItem {
url: `${folder.url}/library-panels`,
});
model.children.push({
active: false,
icon: 'bell',
id: `folder-alerting-${folder.uid}`,
text: 'Alert rules',
url: `${folder.url}/alerting`,
});
if (contextSrv.hasPermission(AccessControlAction.AlertingRuleRead)) {
model.children.push({
active: false,
icon: 'bell',
id: `folder-alerting-${folder.uid}`,
text: 'Alert rules',
url: `${folder.url}/alerting`,
});
}
if (folder.canAdmin) {
model.children.push({
+2
View File
@@ -406,6 +406,8 @@ export function getAppRoutes(): RouteDescriptor[] {
},
{
path: '/dashboards/f/:uid/:slug/alerting',
roles: () =>
contextSrv.evaluatePermission(() => ['Viewer', 'Editor', 'Admin'], [AccessControlAction.AlertingRuleRead]),
component: SafeDynamicImport(
() => import(/* webpackChunkName: "FolderAlerting"*/ 'app/features/folders/FolderAlerting')
),