Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[HOLD for payment 2023-08-10] [$1000] Web - Still able to access participants page of archived room - Result in empty page. #23473

Closed
1 of 6 tasks
kbecciv opened this issue Jul 24, 2023 · 35 comments
Assignees
Labels
Awaiting Payment Auto-added when associated PR is deployed to production Bug Something is broken. Auto assigns a BugZero manager. Daily KSv2 External Added to denote the issue can be worked on by a contributor

Comments

@kbecciv
Copy link

kbecciv commented Jul 24, 2023

If you haven’t already, check out our contributing guidelines for onboarding and email [email protected] to request to join our Slack channel!


Action Performed:

  1. Go to any participant page of any archived room (ie: http://staging.new.expensify.com/r/5933457920639637/participants)
  2. Observe the participants page.

Expected Result:

If chat room is archived, PageNotFound should be showed.

Actual Result:

The participant page is empty.

Workaround:

Unknown

Platforms:

Which of our officially supported platforms is this issue occurring on?

  • Android / native
  • Android / Chrome
  • iOS / native
  • iOS / Safari
  • MacOS / Chrome / Safari
  • MacOS / Desktop

Version Number: 1.3.44-0
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation

Screen.Recording.2023-07-23.at.16.08.46.mov

image (4)

Expensify/Expensify Issue URL:
Issue reported by: @hungvu193
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1690103304727759

View all open jobs on GitHub

Upwork Automation - Do Not Edit
  • Upwork Job URL: https://www.upwork.com/jobs/~01f9daeda0929fdb5e
  • Upwork Job ID: 1683637575963820032
  • 2023-07-25
  • Automatic offers:
    • hungvu193 | Contributor | 25846754
    • hungvu193 | Reporter | 25846758
@kbecciv kbecciv added Daily KSv2 Bug Something is broken. Auto assigns a BugZero manager. labels Jul 24, 2023
@melvin-bot
Copy link

melvin-bot bot commented Jul 24, 2023

Triggered auto assignment to @sakluger (Bug), see https://stackoverflow.com/c/expensify/questions/14418 for more details.

@melvin-bot
Copy link

melvin-bot bot commented Jul 24, 2023

Bug0 Triage Checklist (Main S/O)

  • This "bug" occurs on a supported platform (ensure Platforms in OP are ✅)
  • This bug is not a duplicate report (check E/App issues and #expensify-bugs)
    • If it is, comment with a link to the original report, close the issue and add any novel details to the original issue instead
  • This bug is reproducible using the reproduction steps in the OP. S/O
    • If the reproduction steps are clear and you're unable to reproduce the bug, check with the reporter and QA first, then close the issue.
    • If the reproduction steps aren't clear and you determine the correct steps, please update the OP.
  • This issue is filled out as thoroughly and clearly as possible
    • Pay special attention to the title, results, platforms where the bug occurs, and if the bug happens on staging/production.
  • I have reviewed and subscribed to the linked Slack conversation to ensure Slack/Github stay in sync

@kbecciv
Copy link
Author

kbecciv commented Jul 24, 2023

Proposal

Please re-state the problem that we are trying to solve in this issue.

Still able to access participants page of archived workspace - Result in empty page.

What is the root cause of that problem?

We're checking here to show NotFoundPage inside ReportParticipantsPage:

<FullPageNotFoundView shouldShow={_.isEmpty(props.report)}>

As we can see, we don't have a check incase the room is archived or empty member.

What changes do you think we should make in order to solve the problem?

Which should add more condition here for archived room or empty members.

 <FullPageNotFoundView shouldShow={_.isEmpty(props.report) || ReportUtils.isArchivedRoom(props.report)}>

or

 <FullPageNotFoundView shouldShow={_.isEmpty(props.report) || _.isEmpty(participants)}>

or both of above condition:

 <FullPageNotFoundView shouldShow={_.isEmpty(props.report) || _.isEmpty(participants) || ReportUtils.isArchivedRoom(props.report)}>

What alternative solutions did you explore? (Optional)

N/A

@sakluger sakluger added the External Added to denote the issue can be worked on by a contributor label Jul 25, 2023
@melvin-bot melvin-bot bot changed the title Web - Still able to access participants page of archived room - Result in empty page. [$1000] Web - Still able to access participants page of archived room - Result in empty page. Jul 25, 2023
@melvin-bot
Copy link

melvin-bot bot commented Jul 25, 2023

Job added to Upwork: https://www.upwork.com/jobs/~01f9daeda0929fdb5e

@melvin-bot melvin-bot bot added the Help Wanted Apply this label when an issue is open to proposals by contributors label Jul 25, 2023
@melvin-bot
Copy link

melvin-bot bot commented Jul 25, 2023

Current assignee @sakluger is eligible for the External assigner, not assigning anyone new.

@melvin-bot
Copy link

melvin-bot bot commented Jul 25, 2023

Triggered auto assignment to Contributor-plus team member for initial proposal review - @robertKozik (External)

@princemaple
Copy link

So, is this job already taken by @kbecciv ? The proposal sounds reasonable. It'd be redundant to make another.

@melvin-bot
Copy link

melvin-bot bot commented Jul 25, 2023

📣 @princemaple! 📣
Hey, it seems we don’t have your contributor details yet! You'll only have to do this once, and this is how we'll hire you on Upwork.
Please follow these steps:

  1. Get the email address used to login to your Expensify account. If you don't already have an Expensify account, create one here. If you have multiple accounts (e.g. one for testing), please use your main account email.
  2. Get the link to your Upwork profile. It's necessary because we only pay via Upwork. You can access it by logging in, and then clicking on your name. It'll look like this. If you don't already have an account, sign up for one here.
  3. Copy the format below and paste it in a comment on this issue. Replace the placeholder text with your actual details.
    Screen Shot 2022-11-16 at 4 42 54 PM
    Format:
Contributor details
Your Expensify account email: <REPLACE EMAIL HERE>
Upwork Profile Link: <REPLACE LINK HERE>

@princemaple
Copy link

Contributor details
Your Expensify account email: [email protected]
Upwork Profile Link: https://www.upwork.com/freelancers/~01c1ef4389597d794f

@melvin-bot
Copy link

melvin-bot bot commented Jul 25, 2023

✅ Contributor details stored successfully. Thank you for contributing to Expensify!

@alitoshmatov
Copy link
Contributor

alitoshmatov commented Jul 25, 2023

Proposal

Please re-state the problem that we are trying to solve in this issue.

Web - Still able to access participants page of archived room - Result in empty page

What is the root cause of that problem?

We are not checking if report is archived in participants page, we should not show the page when report is archived this problem also exists in other pages too.

The similar issue was also reported #22997. I think we should fix all pages like this all at once.

What changes do you think we should make in order to solve the problem?

We should add condition ReportUtils.isArchivedRoom(props.report) to FullPageNotFoundView component in following palces:

  1. Participants page
    <FullPageNotFoundView shouldShow={_.isEmpty(props.report)}>
  2. Settings page
    <FullPageNotFoundView shouldShow={shouldDisableSettings}>
  3. Notification Preferences
    <FullPageNotFoundView shouldShow={shouldDisableNotificationPreferences}>

We should make sure we are covering all routes that might have this issue.

Also I noticed similar issue here.(I am not sure if this one should be treated as separate since root cause and solution is different.)
We have following routes:
Screenshot 2023-07-25 at 11 01 18 AM
And when we manually enter this routes in non-task reports this pages show up and changes effect the report(at least locally)

So we should also add FullPageNotFoundView with !ReportUtils.isTaskReport(props.report) condition

  1. Task title page
    >
    <HeaderWithBackButton title={props.translate('task.task')} />
  2. Task description page, we should also add since it doesn't have access to the current report
report: {
            key: ({route}) => `${ONYXKEYS.COLLECTION.REPORT}${route.params.reportID}`,
        },

>
<HeaderWithBackButton title={props.translate('task.task')} />

  1. Task assignee is a bit different condition should be props.report && !ReportUtils.isTaskReport(props.report) since props.report might be empty when creating new task

    Also we should add
report: {
            key: ({route}) => `${ONYXKEYS.COLLECTION.REPORT}${getReportID(route)}`,
        },

What alternative solutions did you explore? (Optional)

@sakluger
Copy link
Contributor

@robertKozik mind taking a look at the proposals we're received so far? If you don't think they will fix the issue, we can wait for more proposals. If they are close but need to be tweaked, we can ask for updated proposals. Thanks!

@melvin-bot melvin-bot bot removed the Overdue label Jul 26, 2023
@robertKozik
Copy link
Contributor

@sakluger sure on it!

@robertKozik
Copy link
Contributor

robertKozik commented Jul 26, 2023

Hi All! Thank you all for your proposals @hungvu193 @alitoshmatov! I believe that both of your proposals are the same in a way of tackling with the issue - updating the condition of the PageNotFound.

As I believe we should stick to the main problem of this issue I think the proposal from @kbecciv should be accepted as it came up with te updating condition of the PageNotFound component first.

Selected proposal: proposal
Author of proposal: @hungvu193

🎀 👀 🎀 C+ reviewed

@melvin-bot
Copy link

melvin-bot bot commented Jul 26, 2023

Triggered auto assignment to @Li357, see https://stackoverflow.com/c/expensify/questions/7972 for more details.

@hungvu193
Copy link
Contributor

Hi All! Thank you all for your proposals @kbecciv @alitoshmatov! I believe that both of your proposals are the same in a way of tackling with the issue - updating the condition of the PageNotFound.

As I believe we should stick to the main problem of this issue I think the proposal from @kbecciv should be accepted as it came up with te updating condition of the PageNotFound component first.

Selected proposal: proposal Author of proposal: @kbecciv

🎀 👀 🎀 C+ reviewed

Thanks @robertKozik, that was proposal from me. @kbecciv posted it for me as I'm the reporter 😄

@alitoshmatov
Copy link
Contributor

@robertKozik As you can see in my proposal we have the same issue in ParticipantsPage, ReportSettingsPage, NotificationsPreferencesPage. I think we should fix all of this pages at once in this issue, since they all have the same root cause and solution.

As for task related routes, I believe they will be handled here - #22451

@robertKozik
Copy link
Contributor

Thanks @robertKozik, that was proposal from me. @kbecciv posted it for me as I'm the reporter 😄

Sorry, got distracted @hungvu193. Thanks for pointing it out, already changed my comment

@hungvu193
Copy link
Contributor

I also reported issue for ReportSettingPages and proposed the solution for it as well, in case we want to fix it here, I'm just ok with it.

@sakluger
Copy link
Contributor

If it's basically the same root cause on multiple pages, it makes sense to fix all here rather than manage multiple jobs to fix pretty much the same thing. Let's see what @Li357 has to say, but I'm a fan of fixing everything at once.

@hungvu193 you mentioned that you reported the issue for ReportSettingsPages too, is there another GH issue or Slack post for that? If so, we can consolidate.

@hungvu193
Copy link
Contributor

hungvu193 commented Jul 27, 2023

If it's basically the same root cause on multiple pages, it makes sense to fix all here rather than manage multiple jobs to fix pretty much the same thing. Let's see what @Li357 has to say, but I'm a fan of fixing everything at once.

@hungvu193 you mentioned that you reported the issue for ReportSettingsPages too, is there another GH issue or Slack post for that? If so, we can consolidate.

It's here: #23471. With SettingPages, it will be little different because it also related to the title of room. But the TaskPage is totally difference, we shouldn't handle it here :|

@robertKozik
Copy link
Contributor

Yeah, I agree if the same root cause is on other pages, we could fix it with one sweep

@Li357
Copy link
Contributor

Li357 commented Jul 31, 2023

I think we can handle ReportParticipantsPage, ReportSettingsPage, NotificationPreferencePage all one in go, and since @hungvu193 proposed a solution first to the first two components I'm inclined to hand this to them. And I also agree tasks are slightly different because archiving a chat room lends itself more to showing a not found page.

@hungvu193 can we make sure to check all pages that show report(non-task)-related information and make sure they handled archival gracefully?

@hungvu193
Copy link
Contributor

I think we can handle ReportParticipantsPage, ReportSettingsPage, NotificationPreferencePage all one in go, and since @hungvu193 proposed a solution first to the first two components I'm inclined to hand this to them. And I also agree tasks are slightly different because archiving a chat room lends itself more to showing a not found page.

@hungvu193 can we make sure to check all pages that show report(non-task)-related information and make sure they handled archival gracefully?

Sure @Li357

@melvin-bot melvin-bot bot removed the Help Wanted Apply this label when an issue is open to proposals by contributors label Jul 31, 2023
@melvin-bot
Copy link

melvin-bot bot commented Jul 31, 2023

📣 @hungvu193 🎉 An offer has been automatically sent to your Upwork account for the Contributor role 🎉 Thanks for contributing to the Expensify app!

Offer link
Upwork job
Please accept the offer and leave a comment on the Github issue letting us know when we can expect a PR to be ready for review 🧑‍💻
Keep in mind: Code of Conduct | Contributing 📖

@melvin-bot
Copy link

melvin-bot bot commented Jul 31, 2023

📣 @hungvu193 🎉 An offer has been automatically sent to your Upwork account for the Reporter role 🎉 Thanks for contributing to the Expensify app!

Offer link
Upwork job

@melvin-bot
Copy link

melvin-bot bot commented Aug 1, 2023

🎯 ⚡️ Woah @robertKozik / @hungvu193, great job pushing this forwards! ⚡️

The pull request got merged within 3 working days of assignment, so this job is eligible for a 50% #urgency bonus 🎉

  • when @hungvu193 got assigned: 2023-07-31 03:33:24 Z
  • when the PR got merged: 2023-08-01 17:09:05 UTC

On to the next one 🚀

@melvin-bot melvin-bot bot added Weekly KSv2 Awaiting Payment Auto-added when associated PR is deployed to production and removed Weekly KSv2 labels Aug 3, 2023
@melvin-bot melvin-bot bot changed the title [$1000] Web - Still able to access participants page of archived room - Result in empty page. [HOLD for payment 2023-08-10] [$1000] Web - Still able to access participants page of archived room - Result in empty page. Aug 3, 2023
@melvin-bot
Copy link

melvin-bot bot commented Aug 3, 2023

Reviewing label has been removed, please complete the "BugZero Checklist".

@melvin-bot melvin-bot bot removed the Reviewing Has a PR in review label Aug 3, 2023
@melvin-bot
Copy link

melvin-bot bot commented Aug 3, 2023

The solution for this issue has been 🚀 deployed to production 🚀 in version 1.3.49-3 and is now subject to a 7-day regression period 📆. Here is the list of pull requests that resolve this issue:

If no regressions arise, payment will be issued on 2023-08-10. 🎊

After the hold period is over and BZ checklist items are completed, please complete any of the applicable payments for this issue, and check them off once done.

  • External issue reporter
  • Contributor that fixed the issue
  • Contributor+ that helped on the issue and/or PR

For reference, here are some details about the assignees on this issue:

As a reminder, here are the bonuses/penalties that should be applied for any External issue:

  • Merged PR within 3 business days of assignment - 50% bonus
  • Merged PR more than 9 business days after assignment - 50% penalty

@melvin-bot
Copy link

melvin-bot bot commented Aug 3, 2023

BugZero Checklist: The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:

  • [@robertKozik] The PR that introduced the bug has been identified. Link to the PR:
  • [@robertKozik] The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake. Link to comment:
  • [@robertKozik] A discussion in #expensify-bugs has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner. Link to discussion:
  • [@robertKozik] Determine if we should create a regression test for this bug.
  • [@robertKozik] If we decide to create a regression test for the bug, please propose the regression test steps to ensure the same bug will not reach production again.
  • [@sakluger] Link the GH issue for creating/updating the regression test once above steps have been agreed upon:

@melvin-bot melvin-bot bot added Daily KSv2 and removed Weekly KSv2 labels Aug 9, 2023
@sakluger
Copy link
Contributor

Paid out @hungvu193 for bug report and contributor payment (with efficiency bonus 🚀 ).

@robertKozik could you please finish filling out the bugzero checklist? Thanks!

@robertKozik
Copy link
Contributor

@sakluger sorry forgot about that 🙇🏼

BugZero Checklist: The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:

  • [@robertKozik] The PR that introduced the bug has been identified. Link to the PR: N/A
  • [@robertKozik] The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake. Link to comment: N/A
  • [@robertKozik] A discussion in #expensify-bugs has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner. Link to discussion: N/A
  • [@robertKozik] Determine if we should create a regression test for this bug. — I think yes, as we should be sure that pages which shouldn't be accessible are in deed non-accessible
  • [@robertKozik] If we decide to create a regression test for the bug, please propose the regression test steps to ensure the same bug will not reach production again. — I propopse using the test steps from
    the PR:
    Create a new room
    Delete the workspace link to that room
    Verify that NotFoundPage will show when user go participant, settings, notification preference, write capability page of > that room.

I don't think there is an exact PR which introduced it. But I think the regression test for such a bugs should be created

@sakluger
Copy link
Contributor

Thank you! Regression test steps look good, I've made the corrresponding issue for QA. Closing out 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Awaiting Payment Auto-added when associated PR is deployed to production Bug Something is broken. Auto assigns a BugZero manager. Daily KSv2 External Added to denote the issue can be worked on by a contributor
Projects
None yet
Development

No branches or pull requests

7 participants