From 2e2e835ab1bc94f1f4320a96b71b4cb81d3808ab Mon Sep 17 00:00:00 2001 From: Jasper Huang Date: Tue, 11 Jan 2022 09:40:58 -0800 Subject: [PATCH 1/4] Add policy rooms to its own beta, and restrict this beta on dev --- src/CONST.js | 1 + src/libs/Permissions.js | 13 +++++++++++++ src/pages/home/sidebar/SidebarScreen.js | 2 +- 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/CONST.js b/src/CONST.js index a82a4cfb1605..694fceca5a22 100755 --- a/src/CONST.js +++ b/src/CONST.js @@ -103,6 +103,7 @@ const CONST = { BETA_EXPENSIFY_WALLET: 'expensifyWallet', INTERNATIONALIZATION: 'internationalization', IOU_SEND: 'sendMoney', + POLICY_ROOMS: 'policyRooms', }, BUTTON_STATES: { DEFAULT: 'default', diff --git a/src/libs/Permissions.js b/src/libs/Permissions.js index 492431550c21..2e6e80cb1297 100644 --- a/src/libs/Permissions.js +++ b/src/libs/Permissions.js @@ -77,6 +77,18 @@ function canUseWallet(betas) { return _.contains(betas, CONST.BETAS.BETA_EXPENSIFY_WALLET) || canUseAllBetas(betas); } +/** + * We're requiring you to be added to the policy rooms beta on dev, + * since contributors have been reporting a number of false issues related to the feature being under development. + * See https://expensify.slack.com/archives/C01GTK53T8Q/p1641921996319400?thread_ts=1641598356.166900&cid=C01GTK53T8Q + * @param {Array} betas + * @returns {Boolean} + */ + +function canUsePolicyRooms(betas) { + return _.contains(betas, CONST.BETAS.POLICY_ROOMS) || _.contains(betas, CONST.BETAS.ALL); +} + export default { canUseChronos, canUseIOU, @@ -86,4 +98,5 @@ export default { canUseInternationalization, canUseIOUSend, canUseWallet, + canUsePolicyRooms, }; diff --git a/src/pages/home/sidebar/SidebarScreen.js b/src/pages/home/sidebar/SidebarScreen.js index 069dbbfb998d..e98ada2bbc02 100755 --- a/src/pages/home/sidebar/SidebarScreen.js +++ b/src/pages/home/sidebar/SidebarScreen.js @@ -160,7 +160,7 @@ class SidebarScreen extends Component { text: this.props.translate('sidebarScreen.newGroup'), onSelected: () => Navigation.navigate(ROUTES.NEW_GROUP), }, - ...(Permissions.canUseDefaultRooms(this.props.betas) ? [ + ...(Permissions.canUsePolicyRooms(this.props.betas) ? [ { icon: Expensicons.Hashtag, text: this.props.translate('sidebarScreen.newRoom'), From 5e7ec60ad21436a75e44c39553e332a112ed683f Mon Sep 17 00:00:00 2001 From: Jasper Huang Date: Tue, 11 Jan 2022 09:53:46 -0800 Subject: [PATCH 2/4] Add policy rooms to its own beta, and restrict this beta on dev --- src/libs/Permissions.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libs/Permissions.js b/src/libs/Permissions.js index 2e6e80cb1297..a51032b81bf1 100644 --- a/src/libs/Permissions.js +++ b/src/libs/Permissions.js @@ -86,7 +86,7 @@ function canUseWallet(betas) { */ function canUsePolicyRooms(betas) { - return _.contains(betas, CONST.BETAS.POLICY_ROOMS) || _.contains(betas, CONST.BETAS.ALL); + return _.contains(betas, CONST.BETAS.POLICY_ROOMS); } export default { From 50ebc74b906bc9ae01b9f52d301d672b53e29cbd Mon Sep 17 00:00:00 2001 From: Jasper Huang Date: Tue, 11 Jan 2022 10:02:57 -0800 Subject: [PATCH 3/4] Add policy rooms to its own beta, and restrict this beta on dev --- src/libs/Permissions.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libs/Permissions.js b/src/libs/Permissions.js index a51032b81bf1..2e6e80cb1297 100644 --- a/src/libs/Permissions.js +++ b/src/libs/Permissions.js @@ -86,7 +86,7 @@ function canUseWallet(betas) { */ function canUsePolicyRooms(betas) { - return _.contains(betas, CONST.BETAS.POLICY_ROOMS); + return _.contains(betas, CONST.BETAS.POLICY_ROOMS) || _.contains(betas, CONST.BETAS.ALL); } export default { From bbf85bbb5e6cdb26c4bdf6b4e4d32e906d8cbbf4 Mon Sep 17 00:00:00 2001 From: Jasper Huang Date: Tue, 11 Jan 2022 10:13:00 -0800 Subject: [PATCH 4/4] prevent policy rooms from appearing in the LHN --- src/libs/OptionsListUtils.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/libs/OptionsListUtils.js b/src/libs/OptionsListUtils.js index 4c93c65b0d09..43f799ddb1e6 100644 --- a/src/libs/OptionsListUtils.js +++ b/src/libs/OptionsListUtils.js @@ -415,6 +415,10 @@ function getOptions(reports, personalDetails, activeReportID, { return; } + if (ReportUtils.isUserCreatedPolicyRoom(report) && !Permissions.canUsePolicyRooms(betas)) { + return; + } + const reportPersonalDetails = getPersonalDetailsForLogins(logins, personalDetails); // Save the report in the map if this is a single participant so we can associate the reportID with the