From 92d1b80acfc21c61137d102d353d6c6f8013a797 Mon Sep 17 00:00:00 2001 From: makiour Date: Mon, 21 Aug 2023 19:37:09 +0100 Subject: [PATCH 1/3] Fix user can access debit card with no permission --- src/pages/settings/Wallet/AddDebitCardPage.js | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/pages/settings/Wallet/AddDebitCardPage.js b/src/pages/settings/Wallet/AddDebitCardPage.js index ea0b4698a443..5321441c752a 100644 --- a/src/pages/settings/Wallet/AddDebitCardPage.js +++ b/src/pages/settings/Wallet/AddDebitCardPage.js @@ -20,21 +20,28 @@ import Form from '../../../components/Form'; import Navigation from '../../../libs/Navigation/Navigation'; import ROUTES from '../../../ROUTES'; import usePrevious from '../../../hooks/usePrevious'; +import NotFoundPage from '../../ErrorPage/NotFoundPage'; +import Permissions from '../../../libs/Permissions'; const propTypes = { /* Onyx Props */ formData: PropTypes.shape({ setupComplete: PropTypes.bool, }), + betas: PropTypes.arrayOf(PropTypes.string), }; const defaultProps = { formData: { setupComplete: false, }, + betas: [], }; function DebitCardPage(props) { + if (!Permissions.canUseWallet(props.betas)) { + return ; + } const {translate} = useLocalize(); const prevFormDataSetupComplete = usePrevious(props.formData.setupComplete); const nameOnCardRef = useRef(null); @@ -187,11 +194,11 @@ function DebitCardPage(props) { ); } -DebitCardPage.propTypes = propTypes; -DebitCardPage.defaultProps = defaultProps; - export default withOnyx({ formData: { key: ONYXKEYS.FORMS.ADD_DEBIT_CARD_FORM, }, + betas: { + key: ONYXKEYS.BETAS, + }, })(DebitCardPage); From 00f2c082cb4a04f4097f089116d3a7b5c2151433 Mon Sep 17 00:00:00 2001 From: makiour Date: Mon, 21 Aug 2023 19:38:37 +0100 Subject: [PATCH 2/3] rollback removed necessary lines --- src/pages/settings/Wallet/AddDebitCardPage.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/pages/settings/Wallet/AddDebitCardPage.js b/src/pages/settings/Wallet/AddDebitCardPage.js index 5321441c752a..cc0a75899adf 100644 --- a/src/pages/settings/Wallet/AddDebitCardPage.js +++ b/src/pages/settings/Wallet/AddDebitCardPage.js @@ -194,6 +194,9 @@ function DebitCardPage(props) { ); } +DebitCardPage.propTypes = propTypes; +DebitCardPage.defaultProps = defaultProps; + export default withOnyx({ formData: { key: ONYXKEYS.FORMS.ADD_DEBIT_CARD_FORM, From 964bb58f2fd05c9eba4d0b0d31e7a46aea20b675 Mon Sep 17 00:00:00 2001 From: makiour Date: Tue, 22 Aug 2023 20:25:58 +0100 Subject: [PATCH 3/3] Fixed reviewer comments, fix hook call issue --- src/pages/settings/Wallet/AddDebitCardPage.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/pages/settings/Wallet/AddDebitCardPage.js b/src/pages/settings/Wallet/AddDebitCardPage.js index cc0a75899adf..5bc41b1f7307 100644 --- a/src/pages/settings/Wallet/AddDebitCardPage.js +++ b/src/pages/settings/Wallet/AddDebitCardPage.js @@ -28,6 +28,8 @@ const propTypes = { formData: PropTypes.shape({ setupComplete: PropTypes.bool, }), + + /** List of betas available to current user */ betas: PropTypes.arrayOf(PropTypes.string), }; @@ -39,9 +41,6 @@ const defaultProps = { }; function DebitCardPage(props) { - if (!Permissions.canUseWallet(props.betas)) { - return ; - } const {translate} = useLocalize(); const prevFormDataSetupComplete = usePrevious(props.formData.setupComplete); const nameOnCardRef = useRef(null); @@ -101,6 +100,10 @@ function DebitCardPage(props) { return errors; }; + if (!Permissions.canUseWallet(props.betas)) { + return ; + } + return ( nameOnCardRef.current && nameOnCardRef.current.focus()}