Scope the per-step participation read to the acting tenant, as the run-wide one already is

Issue #3624395.

WorkItemManager::isAccountParticipant() carries a tenant condition; its per-step sibling isAccountTaskParticipant() did not, although the caller describes the two as one question asked of a run and of a step. AssignmentResumer::checkViewAccess() gates an open step on the tenant-scoped checkActionAccess() and a finished one on the unscoped isAccountTaskParticipant(), so a completed step could be read from outside its own tenant.

This adds the tenant condition, so the two agree.

WorkItemParticipationTest::testOtherTenantExcludedForOneToken() mirrors the existing testOtherTenantExcluded() onto the per-token question. It was confirmed to fail without the change (Failed asserting that true is false) and to pass with it.

AI-Generated: Yes (Claude Code was used to help draft this change and its test case. I reviewed both, and the new test was confirmed to fail without the fix and to pass with it.)

Merge request reports

Loading