From 874c81ad922ac9985d79242d2bcc3b358c927ded Mon Sep 17 00:00:00 2001 From: DylanDylann Date: Tue, 7 Nov 2023 23:17:21 +0700 Subject: [PATCH 1/5] fix duplicate phone number can be invited to room --- src/libs/OptionsListUtils.js | 7 ++++++- src/libs/Permissions.ts | 1 + src/pages/RoomInvitePage.js | 8 ++++++-- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/libs/OptionsListUtils.js b/src/libs/OptionsListUtils.js index 54d09b75eff2..09c334beff01 100644 --- a/src/libs/OptionsListUtils.js +++ b/src/libs/OptionsListUtils.js @@ -1282,7 +1282,12 @@ function getOptions( if (includePersonalDetails) { // Next loop over all personal details removing any that are selectedUsers or recentChats _.each(allPersonalDetailsOptions, (personalDetailOption) => { - if (_.some(optionsToExclude, (optionToExclude) => optionToExclude.login === personalDetailOption.login)) { + if ( + _.some( + optionsToExclude, + (optionToExclude) => optionToExclude.login === personalDetailOption.login || optionToExclude.login === addSMSDomainIfPhoneNumber(personalDetailOption.login), + ) + ) { return; } const {searchText, participantsList, isChatRoom} = personalDetailOption; diff --git a/src/libs/Permissions.ts b/src/libs/Permissions.ts index 5200e5803ee3..20fff93a4732 100644 --- a/src/libs/Permissions.ts +++ b/src/libs/Permissions.ts @@ -31,6 +31,7 @@ function canUseCommentLinking(betas: Beta[]): boolean { * See https://expensify.slack.com/archives/C01GTK53T8Q/p1641921996319400?thread_ts=1641598356.166900&cid=C01GTK53T8Q */ function canUsePolicyRooms(betas: Beta[]): boolean { + return true; return betas?.includes(CONST.BETAS.POLICY_ROOMS) || canUseAllBetas(betas); } diff --git a/src/pages/RoomInvitePage.js b/src/pages/RoomInvitePage.js index 71585fefbcd3..2fba684c2b62 100644 --- a/src/pages/RoomInvitePage.js +++ b/src/pages/RoomInvitePage.js @@ -69,7 +69,10 @@ function RoomInvitePage(props) { const [userToInvite, setUserToInvite] = useState(null); // Any existing participants and Expensify emails should not be eligible for invitation - const excludedUsers = useMemo(() => [...lodashGet(props.report, 'participants', []), ...CONST.EXPENSIFY_EMAILS], [props.report]); + const excludedUsers = useMemo( + () => _.map([...lodashGet(props.report, 'participants', []), ...CONST.EXPENSIFY_EMAILS], (participant) => OptionsListUtils.addSMSDomainIfPhoneNumber(participant)), + [props.report], + ); useEffect(() => { // Kick the user out if they tried to navigate to this via the URL @@ -188,11 +191,12 @@ function RoomInvitePage(props) { if (!userToInvite && CONST.EXPENSIFY_EMAILS.includes(searchValue)) { return translate('messages.errorMessageInvalidEmail'); } - if (!userToInvite && excludedUsers.includes(searchValue)) { + if (!userToInvite && (excludedUsers.includes(searchValue) || excludedUsers.includes(OptionsListUtils.addSMSDomainIfPhoneNumber(searchValue).toLowerCase()))) { return translate('messages.userIsAlreadyMember', {login: searchValue, name: reportName}); } return OptionsListUtils.getHeaderMessage(personalDetails.length !== 0, Boolean(userToInvite), searchValue); }, [excludedUsers, translate, searchTerm, userToInvite, personalDetails, reportName]); + console.log('/////', excludedUsers); return ( Date: Tue, 7 Nov 2023 23:33:02 +0700 Subject: [PATCH 2/5] fix remove console log --- src/pages/RoomInvitePage.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/pages/RoomInvitePage.js b/src/pages/RoomInvitePage.js index 2fba684c2b62..dd03cb7fa300 100644 --- a/src/pages/RoomInvitePage.js +++ b/src/pages/RoomInvitePage.js @@ -196,7 +196,6 @@ function RoomInvitePage(props) { } return OptionsListUtils.getHeaderMessage(personalDetails.length !== 0, Boolean(userToInvite), searchValue); }, [excludedUsers, translate, searchTerm, userToInvite, personalDetails, reportName]); - console.log('/////', excludedUsers); return ( Date: Wed, 8 Nov 2023 11:41:23 +0700 Subject: [PATCH 3/5] fix remove redandunt changes --- src/libs/Permissions.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/libs/Permissions.ts b/src/libs/Permissions.ts index 20fff93a4732..5200e5803ee3 100644 --- a/src/libs/Permissions.ts +++ b/src/libs/Permissions.ts @@ -31,7 +31,6 @@ function canUseCommentLinking(betas: Beta[]): boolean { * See https://expensify.slack.com/archives/C01GTK53T8Q/p1641921996319400?thread_ts=1641598356.166900&cid=C01GTK53T8Q */ function canUsePolicyRooms(betas: Beta[]): boolean { - return true; return betas?.includes(CONST.BETAS.POLICY_ROOMS) || canUseAllBetas(betas); } From 95283d6b29f382f541e810fde725b1b1966e8ab1 Mon Sep 17 00:00:00 2001 From: DylanDylann Date: Mon, 13 Nov 2023 14:53:14 +0700 Subject: [PATCH 4/5] fix comment --- src/libs/OptionsListUtils.js | 7 +------ src/pages/RoomInvitePage.js | 8 +++++++- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/libs/OptionsListUtils.js b/src/libs/OptionsListUtils.js index 7fc465b8d74a..f9c481285b5e 100644 --- a/src/libs/OptionsListUtils.js +++ b/src/libs/OptionsListUtils.js @@ -1282,12 +1282,7 @@ function getOptions( if (includePersonalDetails) { // Next loop over all personal details removing any that are selectedUsers or recentChats _.each(allPersonalDetailsOptions, (personalDetailOption) => { - if ( - _.some( - optionsToExclude, - (optionToExclude) => optionToExclude.login === personalDetailOption.login || optionToExclude.login === addSMSDomainIfPhoneNumber(personalDetailOption.login), - ) - ) { + if (_.some(optionsToExclude, (optionToExclude) => optionToExclude.login === addSMSDomainIfPhoneNumber(personalDetailOption.login))) { return; } const {searchText, participantsList, isChatRoom} = personalDetailOption; diff --git a/src/pages/RoomInvitePage.js b/src/pages/RoomInvitePage.js index 70b51a2f2995..4ec8319b2827 100644 --- a/src/pages/RoomInvitePage.js +++ b/src/pages/RoomInvitePage.js @@ -70,7 +70,13 @@ function RoomInvitePage(props) { const [userToInvite, setUserToInvite] = useState(null); // Any existing participants and Expensify emails should not be eligible for invitation - const excludedUsers = useMemo(() => [...PersonalDetailsUtils.getLoginsByAccountIDs(lodashGet(props.report, 'participantAccountIDs', [])), ...CONST.EXPENSIFY_EMAILS], [props.report]); + const excludedUsers = useMemo( + () => + _.map([...PersonalDetailsUtils.getLoginsByAccountIDs(lodashGet(props.report, 'participantAccountIDs', [])), ...CONST.EXPENSIFY_EMAILS], (participant) => + OptionsListUtils.addSMSDomainIfPhoneNumber(participant), + ), + [props.report], + ); useEffect(() => { // Kick the user out if they tried to navigate to this via the URL From 974f7dc21db63affa3a17ad1a97e2db9967b5bd1 Mon Sep 17 00:00:00 2001 From: DylanDylann Date: Sat, 18 Nov 2023 10:55:45 +0700 Subject: [PATCH 5/5] fix workspace invite page --- src/pages/RoomInvitePage.js | 2 +- src/pages/workspace/WorkspaceInvitePage.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pages/RoomInvitePage.js b/src/pages/RoomInvitePage.js index 80dfae47a88d..4bd61a251c53 100644 --- a/src/pages/RoomInvitePage.js +++ b/src/pages/RoomInvitePage.js @@ -196,7 +196,7 @@ function RoomInvitePage(props) { if (!userToInvite && CONST.EXPENSIFY_EMAILS.includes(searchValue)) { return translate('messages.errorMessageInvalidEmail'); } - if (!userToInvite && (excludedUsers.includes(searchValue) || excludedUsers.includes(OptionsListUtils.addSMSDomainIfPhoneNumber(searchValue).toLowerCase()))) { + if (!userToInvite && excludedUsers.includes(OptionsListUtils.addSMSDomainIfPhoneNumber(searchValue).toLowerCase())) { return translate('messages.userIsAlreadyMember', {login: searchValue, name: reportName}); } return OptionsListUtils.getHeaderMessage(personalDetails.length !== 0, Boolean(userToInvite), searchValue); diff --git a/src/pages/workspace/WorkspaceInvitePage.js b/src/pages/workspace/WorkspaceInvitePage.js index 4bef69c82414..497890b9da25 100644 --- a/src/pages/workspace/WorkspaceInvitePage.js +++ b/src/pages/workspace/WorkspaceInvitePage.js @@ -220,7 +220,7 @@ function WorkspaceInvitePage(props) { if (usersToInvite.length === 0 && CONST.EXPENSIFY_EMAILS.includes(searchValue)) { return translate('messages.errorMessageInvalidEmail'); } - if (usersToInvite.length === 0 && excludedUsers.includes(searchValue)) { + if (usersToInvite.length === 0 && excludedUsers.includes(OptionsListUtils.addSMSDomainIfPhoneNumber(searchValue))) { return translate('messages.userIsAlreadyMember', {login: searchValue, name: policyName}); } return OptionsListUtils.getHeaderMessage(personalDetails.length !== 0, usersToInvite.length > 0, searchValue);