From ee181e1a94f14bfd0d8cbae51da1061bcd35edf3 Mon Sep 17 00:00:00 2001 From: Thomas Zemp Date: Mon, 9 Sep 2024 21:59:18 +0200 Subject: [PATCH] fix: skipAudit warning --- src/components/view/submit-modal/submit-modal.js | 16 +++++++++++++++- .../view/submit-modal/submit-modal.module.css | 4 ++++ src/context/user-context/user-provider.js | 7 +++++++ 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/src/components/view/submit-modal/submit-modal.js b/src/components/view/submit-modal/submit-modal.js index 8851230..e3f6753 100644 --- a/src/components/view/submit-modal/submit-modal.js +++ b/src/components/view/submit-modal/submit-modal.js @@ -9,10 +9,11 @@ import { ModalActions, ModalContent, ModalTitle, + NoticeBox, } from '@dhis2/ui' import PropTypes from 'prop-types' import React, { useEffect, useState } from 'react' -import { useExchangeContext } from '../../../context/index.js' +import { useExchangeContext, useUserContext } from '../../../context/index.js' import { Warning } from '../../common/index.js' import styles from './submit-modal.module.css' import { SuccessContent } from './success-content.js' @@ -146,6 +147,7 @@ const ConfirmModalContent = ({ exchange, requests, onClose, onSubmit }) => { // this is very wordy, but did not have luck with i18nextscanner picking up from more compact versions... let reportTranslationsString const { systemInfo } = useConfig() + const { hasSkipAuditInfoAuthority } = useUserContext() const reportCount = requests.length const exchangeName = exchange?.displayName const exchangeURL = @@ -153,6 +155,7 @@ const ConfirmModalContent = ({ exchange, requests, onClose, onSubmit }) => { ? systemInfo?.contextPath : exchange?.target?.api?.url const exchangeHostName = exchangeURL?.split('//')[1] ?? exchangeURL // remove protocol + const exchangeSkipAudit = Boolean(exchange?.target?.request?.skipAudit) if (exchange?.target?.type === 'INTERNAL') { if (requests.length > 1) { @@ -212,6 +215,17 @@ const ConfirmModalContent = ({ exchange, requests, onClose, onSubmit }) => { })} + + {exchangeSkipAudit && !hasSkipAuditInfoAuthority && ( +
+ + {i18n.t( + 'This exchange is configured to skip audit information on submit, but you do not have the Skip data import audit authority. If you submit this exchange, the data will be ignored.' + )} + +
+ )} +
{i18n.t('Are you sure you want to submit this data?')}
diff --git a/src/components/view/submit-modal/submit-modal.module.css b/src/components/view/submit-modal/submit-modal.module.css index 2e09c8c..a46e6c2 100644 --- a/src/components/view/submit-modal/submit-modal.module.css +++ b/src/components/view/submit-modal/submit-modal.module.css @@ -34,3 +34,7 @@ margin: var(--spacers-dp8) 0 var(--spacers-dp16) 0; font-style: italic; } + +.skipAuditWarning { + margin-block: var(--spacers-dp8); +} diff --git a/src/context/user-context/user-provider.js b/src/context/user-context/user-provider.js index ccd54df..067ccb1 100644 --- a/src/context/user-context/user-provider.js +++ b/src/context/user-context/user-provider.js @@ -10,6 +10,7 @@ const EXCHANGE_AUTHORITIES_ADD = [ 'F_AGGREGATE_DATA_EXCHANGE_PUBLIC_ADD', ] const EXCHANGE_AUTHORITIES_DELETE = ['F_AGGREGATE_DATA_EXCHANGE_DELETE'] +const SKIP_DATA_IMPORT_AUDIT_AUTHORITIES = ['F_SKIP_DATA_IMPORT_AUDIT'] const ALL_AUTHORITY = ['ALL'] const query = { @@ -59,10 +60,16 @@ const UserProvider = ({ children }) => { ...EXCHANGE_AUTHORITIES_DELETE, ].some((auth) => authorities.includes(auth)) + const hasSkipAuditInfoAuthority = [ + ...ALL_AUTHORITY, + ...SKIP_DATA_IMPORT_AUDIT_AUTHORITIES, + ].some((auth) => authorities.includes(auth)) + const providerValue = { id, canAddExchange, canDeleteExchange, + hasSkipAuditInfoAuthority, organisationUnits, keyUiLocale: settings.keyUiLocale, }