mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Disable server stats buttons when user doesn't have permissions to access those links (#43603)
This commit is contained in:
parent
f999910dc6
commit
13223140ad
@ -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();
|
||||
});
|
||||
});
|
||||
|
@ -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 = () => {
|
||||
<StatCard
|
||||
content={[{ name: 'Data sources', value: stats.datasources }]}
|
||||
footer={
|
||||
<LinkButton href={'/datasources'} variant={'secondary'}>
|
||||
Manage data sources
|
||||
</LinkButton>
|
||||
hasAccessToDataSources && (
|
||||
<LinkButton href={'/datasources'} variant={'secondary'}>
|
||||
Manage data sources
|
||||
</LinkButton>
|
||||
)
|
||||
}
|
||||
/>
|
||||
<StatCard
|
||||
@ -77,9 +82,11 @@ export const ServerStats = () => {
|
||||
{ name: 'Active sessions', value: stats.activeSessions },
|
||||
]}
|
||||
footer={
|
||||
<LinkButton href={'/admin/users'} variant={'secondary'}>
|
||||
Manage users
|
||||
</LinkButton>
|
||||
hasAccessToAdminUsers && (
|
||||
<LinkButton href={'/admin/users'} variant={'secondary'}>
|
||||
Manage users
|
||||
</LinkButton>
|
||||
)
|
||||
}
|
||||
/>
|
||||
</div>
|
||||
@ -133,7 +140,7 @@ const getStyles = (theme: GrafanaTheme2) => {
|
||||
|
||||
type StatCardProps = {
|
||||
content: Array<Record<string, number | string>>;
|
||||
footer?: JSX.Element;
|
||||
footer?: JSX.Element | boolean;
|
||||
};
|
||||
|
||||
const StatCard = ({ content, footer }: StatCardProps) => {
|
||||
|
Loading…
Reference in New Issue
Block a user