diff --git a/public/app/features/dashboard/components/ShareModal/SharePublicDashboard/ConfigPublicDashboard/EmailSharingConfiguration.tsx b/public/app/features/dashboard/components/ShareModal/SharePublicDashboard/ConfigPublicDashboard/EmailSharingConfiguration.tsx index 5b916eb980a..4a25e6c9b11 100644 --- a/public/app/features/dashboard/components/ShareModal/SharePublicDashboard/ConfigPublicDashboard/EmailSharingConfiguration.tsx +++ b/public/app/features/dashboard/components/ShareModal/SharePublicDashboard/ConfigPublicDashboard/EmailSharingConfiguration.tsx @@ -5,6 +5,7 @@ import { useWindowSize } from 'react-use'; import { GrafanaTheme2, SelectableValue } from '@grafana/data/src'; import { selectors as e2eSelectors } from '@grafana/e2e-selectors/src'; +import { FieldSet } from '@grafana/ui'; import { Button, ButtonGroup, @@ -15,6 +16,7 @@ import { Spinner, useStyles2, } from '@grafana/ui/src'; +import { contextSrv } from 'app/core/services/context_srv'; import { useAddRecipientMutation, useDeleteRecipientMutation, @@ -22,7 +24,8 @@ import { useReshareAccessToRecipientMutation, useUpdatePublicDashboardMutation, } from 'app/features/dashboard/api/publicDashboardApi'; -import { useSelector } from 'app/types'; +import { isOrgAdmin } from 'app/features/plugins/admin/permissions'; +import { AccessControlAction, useSelector } from 'app/types'; import { trackDashboardSharingActionPerType } from '../../analytics'; import { shareDashboardType } from '../../utils'; @@ -118,6 +121,8 @@ export const EmailSharingConfiguration = () => { const [updateShareType] = useUpdatePublicDashboardMutation(); const [addEmail, { isLoading: isAddEmailLoading }] = useAddRecipientMutation(); + const hasWritePermissions = contextSrv.hasAccess(AccessControlAction.DashboardsPublicWrite, isOrgAdmin()); + const { register, setValue, @@ -154,70 +159,72 @@ export const EmailSharingConfiguration = () => { }; return ( -
- - { - const { ref, ...rest } = field; - return ( - { - trackDashboardSharingActionPerType( - `share_type_${shareType === PublicDashboardShareType.EMAIL ? 'email' : 'public'}`, - shareDashboardType.publicDashboard - ); - setValue('shareType', shareType); - onUpdateShareType(shareType); - }} + +
+ + { + const { ref, ...rest } = field; + return ( + { + trackDashboardSharingActionPerType( + `share_type_${shareType === PublicDashboardShareType.EMAIL ? 'email' : 'public'}`, + shareDashboardType.publicDashboard + ); + setValue('shareType', shareType); + onUpdateShareType(shareType); + }} + /> + ); + }} + /> + + {watch('shareType') === PublicDashboardShareType.EMAIL && ( + <> + +
+ + +
+
+ {!!publicDashboard?.recipients?.length && ( + - ); - }} - /> - - {watch('shareType') === PublicDashboardShareType.EMAIL && ( - <> - -
- - -
-
- {!!publicDashboard?.recipients?.length && ( - - )} - - )} + )} + + )} +
); };