From 8caa52ca0f33f050a56b90b32132830b025718ef Mon Sep 17 00:00:00 2001 From: Clarity-89 Date: Mon, 5 Jan 2026 16:25:49 +0200 Subject: [PATCH] Expand check --- .../src/internal/openFeature/index.ts | 1 - .../BrowseDashboardsPage.test.tsx | 8 +++++++ .../BrowseDashboardsPage.tsx | 21 +++++++++++-------- 3 files changed, 20 insertions(+), 10 deletions(-) diff --git a/packages/grafana-runtime/src/internal/openFeature/index.ts b/packages/grafana-runtime/src/internal/openFeature/index.ts index 4e24db0d676..57e35516e30 100644 --- a/packages/grafana-runtime/src/internal/openFeature/index.ts +++ b/packages/grafana-runtime/src/internal/openFeature/index.ts @@ -29,6 +29,5 @@ export async function initOpenFeature() { } export function evaluateBooleanFlag(flagName: FeatureFlagName, defaultValue: boolean): boolean { - console.log('deets', OpenFeature.getClient().getBooleanDetails('recentlyViewedDashboards', false)); return OpenFeature.getClient().getBooleanValue(flagName, defaultValue); } diff --git a/public/app/features/browse-dashboards/BrowseDashboardsPage.test.tsx b/public/app/features/browse-dashboards/BrowseDashboardsPage.test.tsx index ce1ea7d4a31..210cf41cab6 100644 --- a/public/app/features/browse-dashboards/BrowseDashboardsPage.test.tsx +++ b/public/app/features/browse-dashboards/BrowseDashboardsPage.test.tsx @@ -55,6 +55,13 @@ jest.mock('@grafana/runtime', () => { }; }); +jest.mock('@grafana/runtime/internal', () => { + return { + ...jest.requireActual('@grafana/runtime/internal'), + evaluateBooleanFlag: jest.fn().mockReturnValue(false), + }; +}); + function render(ui: Parameters[0], options: Parameters[1] = {}) { return testRender(ui, { preloadedState: { @@ -128,6 +135,7 @@ describe('browse-dashboards BrowseDashboardsPage', () => { const previousFlag = config.featureToggles.restoreDashboards; config.featureToggles.restoreDashboards = true; mockPermissions.canDeleteDashboards = false; + jest.spyOn(contextSrv, 'hasPermission').mockReturnValue(false); render(); await screen.findByPlaceholderText('Search for dashboards and folders'); diff --git a/public/app/features/browse-dashboards/BrowseDashboardsPage.tsx b/public/app/features/browse-dashboards/BrowseDashboardsPage.tsx index 08fca5cb92f..2b40ef8cbde 100644 --- a/public/app/features/browse-dashboards/BrowseDashboardsPage.tsx +++ b/public/app/features/browse-dashboards/BrowseDashboardsPage.tsx @@ -10,9 +10,11 @@ import { LinkButton, FilterInput, useStyles2, Text, Stack } from '@grafana/ui'; import { useGetFolderQueryFacade, useUpdateFolder } from 'app/api/clients/folder/v1beta1/hooks'; import { Page } from 'app/core/components/Page/Page'; import { getConfig } from 'app/core/config'; +import { AccessControlAction } from 'app/types/accessControl'; import { useDispatch } from 'app/types/store'; import { FolderRepo } from '../../core/components/NestedFolderPicker/FolderRepo'; +import { contextSrv } from '../../core/services/context_srv'; import { ManagerKind } from '../apiserver/types'; import { TemplateDashboardModal } from '../dashboard/dashgrid/DashboardLibrary/TemplateDashboardModal'; import { buildNavModel, getDashboardsTabID } from '../folders/state/navModel'; @@ -153,15 +155,16 @@ const BrowseDashboardsPage = memo(({ queryParams }: { queryParams: Record - {config.featureToggles.restoreDashboards && canDeleteDashboards && ( - - Recently deleted - - )} + {config.featureToggles.restoreDashboards && + (canDeleteDashboards || contextSrv.hasPermission(AccessControlAction.DashboardsDelete)) && ( + + Recently deleted + + )} {folderDTO && } {(canCreateDashboards || canCreateFolders) && (