Folders: Don't show error pop-up if the user can't fetch the root folder (#95569)

don't show error pop-up if the user can't read general folder
This commit is contained in:
Ieva 2024-10-30 10:48:34 +00:00 committed by GitHub
parent 87c2bc44b2
commit 092a1813ef
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 8 additions and 3 deletions

View File

@ -81,8 +81,10 @@ const BrowseDashboardsPage = memo(() => {
const hasSelection = useHasSelection(); const hasSelection = useHasSelection();
const { data: rootFolder } = useGetFolderQuery('general'); // Fetch the root (aka general) folder if we're not in a specific folder
let folder = folderDTO ? folderDTO : rootFolder; const { data: rootFolderDTO } = useGetFolderQuery(folderDTO ? skipToken : 'general');
const folder = folderDTO ?? rootFolderDTO;
const { canEditFolders, canEditDashboards, canCreateDashboards, canCreateFolders } = getFolderPermissions(folder); const { canEditFolders, canEditDashboards, canCreateDashboards, canCreateFolders } = getFolderPermissions(folder);
const hasAdminRights = contextSrv.hasRole('Admin') || contextSrv.isGrafanaAdmin; const hasAdminRights = contextSrv.hasRole('Admin') || contextSrv.isGrafanaAdmin;

View File

@ -66,12 +66,15 @@ interface HardDeleteDashboardArgs {
function createBackendSrvBaseQuery({ baseURL }: { baseURL: string }): BaseQueryFn<RequestOptions> { function createBackendSrvBaseQuery({ baseURL }: { baseURL: string }): BaseQueryFn<RequestOptions> {
async function backendSrvBaseQuery(requestOptions: RequestOptions) { async function backendSrvBaseQuery(requestOptions: RequestOptions) {
// Suppress error pop-up for root (aka 'general') folder
const isGeneralFolder = requestOptions.url === `/folders/general`;
requestOptions = isGeneralFolder ? { ...requestOptions, showErrorAlert: false } : requestOptions;
try { try {
const { data: responseData, ...meta } = await lastValueFrom( const { data: responseData, ...meta } = await lastValueFrom(
getBackendSrv().fetch({ getBackendSrv().fetch({
...requestOptions, ...requestOptions,
url: baseURL + requestOptions.url, url: baseURL + requestOptions.url,
showErrorAlert: requestOptions.showErrorAlert,
}) })
); );
return { data: responseData, meta }; return { data: responseData, meta };