feat(management): any-of role gates; restrict ListSecuredWrites to Operator/Verifier/Admin (arch-review UA1)
Claude-Session: https://claude.ai/code/session_01MtdgwpEeCUn6cUA5f1LMPj
This commit is contained in:
@@ -352,7 +352,10 @@ public class SecuredWriteHandlerTests : TestKit, IDisposable
|
||||
});
|
||||
|
||||
var actor = CreateActor();
|
||||
var envelope = Envelope(new ListSecuredWritesCommand("Pending", "SITE1"), "carol", "Viewer");
|
||||
// arch-review UA1: ListSecuredWrites is gated to the Secured Write
|
||||
// roles + Administrator, so use Operator here (this test asserts filter
|
||||
// forwarding, not the role gate — see ListSecuredWrites_* auth tests).
|
||||
var envelope = Envelope(new ListSecuredWritesCommand("Pending", "SITE1"), "carol", "Operator");
|
||||
|
||||
actor.Tell(envelope);
|
||||
|
||||
@@ -370,7 +373,8 @@ public class SecuredWriteHandlerTests : TestKit, IDisposable
|
||||
.Returns(new List<PendingSecuredWrite>());
|
||||
|
||||
var actor = CreateActor();
|
||||
var envelope = Envelope(new ListSecuredWritesCommand(null, null), "carol");
|
||||
// arch-review UA1: gated read — Operator satisfies the any-of gate.
|
||||
var envelope = Envelope(new ListSecuredWritesCommand(null, null), "carol", "Operator");
|
||||
|
||||
actor.Tell(envelope);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user