diff --git a/public/app/features/admin/ServerStats.test.tsx b/public/app/features/admin/ServerStats.test.tsx index e302440cb5e..4f777c22e0a 100644 --- a/public/app/features/admin/ServerStats.test.tsx +++ b/public/app/features/admin/ServerStats.test.tsx @@ -41,5 +41,8 @@ describe('ServerStats', () => { expect(screen.getByText('Playlists')).toBeInTheDocument(); expect(screen.getByText('Snapshots')).toBeInTheDocument(); expect(screen.getByRole('link', { name: 'Manage dashboards' })).toBeInTheDocument(); + expect(screen.getByRole('link', { name: 'Manage data sources' })).toBeInTheDocument(); + expect(screen.getByRole('link', { name: 'Alerts' })).toBeInTheDocument(); + expect(screen.getByRole('link', { name: 'Manage users' })).toBeInTheDocument(); }); }); diff --git a/public/app/features/admin/ServerStats.tsx b/public/app/features/admin/ServerStats.tsx index 8a15746336d..675b0ea38f9 100644 --- a/public/app/features/admin/ServerStats.tsx +++ b/public/app/features/admin/ServerStats.tsx @@ -14,6 +14,9 @@ export const ServerStats = () => { const [isLoading, setIsLoading] = useState(false); const styles = useStyles2(getStyles); + const hasAccessToDataSources = contextSrv.hasAccess(AccessControlAction.DataSourcesRead, contextSrv.isGrafanaAdmin); + const hasAccessToAdminUsers = contextSrv.hasAccess(AccessControlAction.UsersRead, contextSrv.isGrafanaAdmin); + useEffect(() => { if (contextSrv.hasAccess(AccessControlAction.ActionServerStatsRead, contextSrv.isGrafanaAdmin)) { setIsLoading(true); @@ -55,9 +58,11 @@ export const ServerStats = () => { - Manage data sources - + hasAccessToDataSources && ( + + Manage data sources + + ) } /> { { name: 'Active sessions', value: stats.activeSessions }, ]} footer={ - - Manage users - + hasAccessToAdminUsers && ( + + Manage users + + ) } /> @@ -133,7 +140,7 @@ const getStyles = (theme: GrafanaTheme2) => { type StatCardProps = { content: Array>; - footer?: JSX.Element; + footer?: JSX.Element | boolean; }; const StatCard = ({ content, footer }: StatCardProps) => {