iam: restore native policy immediately after resetting overrides

Signed-off-by: Feng Ruohang <rh@vonng.com>
This commit is contained in:
Feng Ruohang
2026-10-25 03:32:53 +08:00
parent aafe4f8886
commit 1e3ab56b06
3 changed files with 389 additions and 59 deletions
+8 -2
View File
@@ -85,15 +85,21 @@ func TestIAMPolicyDeletionRemainsExplicit(t *testing.T) {
}
p, err := sys.store.GetPolicy("readwrite")
mustIAM(t, err)
native, err := sys.InfoPolicy("readwrite")
mustIAM(t, err)
if err := sys.DeletePolicy(ctx, "readwrite", true); err == nil {
t.Fatal("local pristine builtin policy became deletable")
}
_, err = sys.SetPolicy(ctx, "readwrite", p)
mustIAM(t, err)
mustIAM(t, sys.DeletePolicy(ctx, "readwrite", true))
assertIAMPolicyResetInfo(t, sys, "readwrite", native)
mustIAM(t, sys.store.LoadIAMCache(ctx, false))
if _, err := sys.store.GetPolicy("readwrite"); !errors.Is(err, errNoSuchPolicy) {
t.Fatalf("reload restored an explicitly deleted override: %v", err)
assertIAMPolicyResetInfo(t, sys, "readwrite", native)
r, err = loadIAMRevision(ctx, sys.store, getPolicyDocPath("readwrite"))
mustIAM(t, err)
if !r.Deleted {
t.Fatal("native policy restoration removed the override tombstone")
}
_, err = sys.SetPolicy(ctx, "readwrite", p)
mustIAM(t, err)