feat(behandelportal): WP-62 medewerker caller identity + authz seam
Splits backend CallerIdentity into the two ADR-0002 §3 actor kinds (ZorgverlenerCaller/MedewerkerCaller), a stub X-Medewerker/X-Rollen header path mirroring WP-53's citizen stub, and Authz.CanBeoordelen as the first medewerker capability — backend-only, no consumer until WP-64. Also fixes the backlog README's stale WP-61 status (done, but table said todo). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -81,4 +81,30 @@ public class AuthzTests
|
||||
Assert.True(Authz.Decisions(Drafter, "sent", DrafterId).CanRevealBigNummer);
|
||||
Assert.False(Authz.Decisions(Approver, "draft", DrafterId).CanRevealBigNummer);
|
||||
}
|
||||
|
||||
// --- CanBeoordelen (WP-62) --------------------------------------------------------------
|
||||
|
||||
[Fact]
|
||||
public void CanBeoordelen_true_for_a_medewerker_with_the_behandelaar_rol()
|
||||
{
|
||||
var medewerker = new MedewerkerCaller("m.jansen", [MedewerkerRol.Behandelaar], "M. Jansen", PrincipalRole.Drafter);
|
||||
Assert.True(Authz.CanBeoordelen(medewerker));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void CanBeoordelen_false_for_a_medewerker_without_it()
|
||||
{
|
||||
var medewerker = new MedewerkerCaller("m.jansen", [], "M. Jansen", PrincipalRole.Drafter);
|
||||
Assert.False(Authz.CanBeoordelen(medewerker));
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData(PrincipalRole.Drafter)]
|
||||
[InlineData(PrincipalRole.Approver)]
|
||||
[InlineData(PrincipalRole.Admin)]
|
||||
public void CanBeoordelen_false_for_a_zorgverlener_regardless_of_role(PrincipalRole role)
|
||||
{
|
||||
var zorgverlener = new ZorgverlenerCaller("111222333", "Dr. Test", role);
|
||||
Assert.False(Authz.CanBeoordelen(zorgverlener));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user