diff --git a/public/app/features/admin/UserListPublicDashboardPage/DeleteUserModalButton.tsx b/public/app/features/admin/UserListPublicDashboardPage/DeleteUserModalButton.tsx index d4bb06db15c..3fc085e9b30 100644 --- a/public/app/features/admin/UserListPublicDashboardPage/DeleteUserModalButton.tsx +++ b/public/app/features/admin/UserListPublicDashboardPage/DeleteUserModalButton.tsx @@ -5,18 +5,29 @@ import { GrafanaTheme2 } from '@grafana/data/src'; import { Button, Modal, ModalsController, useStyles2 } from '@grafana/ui/src'; import { SessionUser } from 'app/features/dashboard/components/ShareModal/SharePublicDashboard/SharePublicDashboardUtils'; -const DeleteUserModal = ({ user, onDismiss }: { user: SessionUser; onDismiss: () => void }) => { +import { useRevokeAllAccessMutation } from '../../dashboard/api/publicDashboardApi'; + +const DeleteUserModal = ({ user, hideModal }: { user: SessionUser; hideModal: () => void }) => { + const [revokeAllAccess] = useRevokeAllAccessMutation(); const styles = useStyles2(getStyles); + const onRevokeAccessClick = () => { + revokeAllAccess({ email: user.email }); + hideModal(); + }; + return ( - + +

Are you sure you want to revoke access for {user.email}?

- The user {user.email} is currently present in {user.totalDashboards} public dashboard(s). If you wish to remove - this user, please navigate to the settings of the corresponding public dashboard. + This action will immediately revoke {user.email}'s access to all public dashboards.

- +
@@ -29,7 +40,7 @@ export const DeleteUserModalButton = ({ user }: { user: SessionUser }) => (