From a9e4c8dad395bc6a26345d9876e194e7718dcc62 Mon Sep 17 00:00:00 2001 From: Tom Butcher Date: Sat, 12 Sep 2026 22:09:04 +0100 Subject: [PATCH] Refactor InfoActionButtons to Conditionally Render Buttons Based on User Permissions - Integrated AuthContext to access user profile permissions. - Added logic to conditionally display DocumentPrintButton and EmailSendButton based on user permissions, enhancing security and user experience. - Improved component structure for better maintainability and clarity. --- .../Dashboard/common/InfoActionButtons.jsx | 24 ++++++++++++++----- 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/src/components/Dashboard/common/InfoActionButtons.jsx b/src/components/Dashboard/common/InfoActionButtons.jsx index e1ed0730..cd65405b 100644 --- a/src/components/Dashboard/common/InfoActionButtons.jsx +++ b/src/components/Dashboard/common/InfoActionButtons.jsx @@ -2,13 +2,25 @@ import { Flex } from 'antd' import PropTypes from 'prop-types' import DocumentPrintButton from './DocumentPrintButton' import EmailSendButton from './EmailSendButton' +import { AuthContext } from '../context/AuthContext' -const InfoActionButtons = (props) => ( - - - - -) +import { useContext } from 'react' + +const InfoActionButtons = (props) => { + const { userProfile } = useContext(AuthContext) + const showEmailSendButton = + userProfile?.permissions?.emailMessage?.new && + userProfile?.permissions?.emailTemplate?.list + const showDocumentPrintButton = + userProfile?.permissions?.documentTemplate?.list && + userProfile?.permissions?.documentJob?.new + return ( + + {showDocumentPrintButton && } + {showEmailSendButton && } + + ) +} InfoActionButtons.propTypes = { type: PropTypes.string.isRequired,