Repository navigation
Show Reject action to workspace admins, not just the report manager - #101503
Conversation
|
@jayeshmangwani Please copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button] |
|
This is @flaviadefaria's project. |
|
@dukenv0307 , can you please re-upload the web video? It’s not showing in the checklist. Also, could you please clarify in the test step if we need to do anything additional? Right now, I can see the Reject option in the More menu for the admin. I’m adding a video below—please let me know if there’s any extra step I need to follow. from-admin-ws.mov |
|
@jayeshmangwani I have updated the steps, but we are still discussing the expected behavior. I will let you know as soon as everything is ready for review |
|
Thanks 👍 |
|
@jayeshmangwani It's ready for review. Can you see my video? |
|
@dukenv0307 If we go to an individual expense and press Reject from the More button, we get a 401 error. Could you please test this on your side and check whether this needs to be fixed on the BE? Api: Response: {
"jsonCode": 401,
"message": "401 User is not the manager",
"source": "auth-via-api",
"onyxData": [],
"requestID": "a3f918afdf10793b-SJC"
}Screen.Recording.2026-09-23.at.4.39.06.PM.mov |
| const isInvoice = isInvoiceReport(report); | ||
| const isCurrentUserManager = !!currentUserAccountID && report?.managerID === currentUserAccountID; | ||
| const isCurrentUserAdmin = isPolicyAdmin(policy); | ||
| const isCurrentUserSubmitter = !!currentUserAccountID && report?.ownerAccountID === currentUserAccountID; |
There was a problem hiding this comment.
Can we use the isCurrentUserSubmitter function from above here as well?
Lines 1617 to 1619 in be8c9e6
|
🚧 flaviadefaria has triggered a test Expensify/App build. You can view the workflow run here. |
This comment has been minimized.
This comment has been minimized.
|
I was able to reject an entire report but similarly to @jayeshmangwani when I try to reject an individual expense on a multi-expense report, I get an error:
|
|
taking a look... |
|
I'm about to split into 2 PRs: reject report and reject expense, but it seems like they use the same share helper so I'll raise the BE PR to fix the reject expense case then mark this one as review after it's deployed |
|
@jayeshmangwani BE PR has been deployed. Could you please review this PR again? Thanks |
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppAndroid.movAndroid: mWeb Chromemweb-chrome.moviOS: HybridAppios.moviOS: mWeb Safarimweb-safari.movMacOS: Chrome / Safariweb.mov |
|
🚧 arosiclair has triggered a test Expensify/App build. You can view the workflow run here. |
|
🧪🧪 Use the links below to test this adhoc build on Android, iOS, and Web. Happy testing! 🧪🧪
|
|
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
|
🚀 Deployed to staging by https://github.com/arosiclair in version: 9.4.96-0 🚀
|
|
A help site update is needed. I opened a draft PR: Docs updates for E/A#101503 Workspace Admins can now reject submitted reports. This PR lets Workspace Admins reject reports they didn't submit, with no beta gate. Both Reject rows in Expense and Report Actions listed only the approver in the "who can" column:
The docs PR adds Workspace Admins to both rows. It changes nothing else. @dukenv0307, please review the linked help site PR and confirm it reflects the current behavior. Then mark the linked help site PR |
|
🚀 Deployed to staging by https://github.com/arosiclair in version: 9.4.99-0 🚀
|
|
A help site update is needed, and a docs PR already exists: [No QA] Docs updates for E/A#101503 Workspace Admins can now reject submitted reports. I didn't open a duplicate. I assigned it to This PR lets Workspace Admins reject reports they didn't submit, with no beta gate. Both Reject rows in Expense and Report Actions listed only the approver as the role that can reject:
The docs PR adds Workspace Admins to those two cells and changes nothing else. @dukenv0307, please review the linked help site PR and confirm it reflects the current behavior. Then mark the linked help site PR |
|
🚀 Deployed to production by https://github.com/Julesssss in version: 9.4.99-2 🚀
Bundle Size Analysis (Sentry): |

Explanation of Change
Part 1: Show Reject action to workspace admins, not just the report manager. I'll do the part 2 to reject the individual expense sooon
Fixed Issues
$ #101502
PROPOSAL:
Tests
Precondition: A ws with at least 3 members: admin (not approver), approver and submitter
Offline tests
Same as above
QA Steps
Same as above
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectiontoggleReportand notonIconClick)Avatar, I verified the components usingAvatarare working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))npm run compress-svg)Avataris modified, I verified thatAvataris working as expected in all cases)Designlabel and/or tagged@Expensify/designso the design team can review the changes.mainbranch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTeststeps.Screenshots/Videos
Android: Native
Android: mWeb Chrome
iOS: Native
iOS: mWeb Safari
MacOS: Chrome / Safari
653778189-dfc3f85b-0d95-4101-bd17-0ec71c066088.mov