diff --git a/phase121_security_test.go b/phase121_security_test.go index 211cb92..3a698bd 100644 --- a/phase121_security_test.go +++ b/phase121_security_test.go @@ -381,6 +381,22 @@ func TestPhase121Threats(t *testing.T) { t.Fatalf("%s payload groups = %v, want an empty list", name, payload["groups"]) } } + // A user model marshalled as it is (another plugin's payload, a log + // line) carries none of the admin columns either. + loaded := env.reload(t, user.ID) + if loaded == nil || loaded.LastSeen == nil || loaded.Permissions["payload."+stamp] != 1 || loaded.CreatedAt.IsZero() { + t.Fatalf("the admin columns were not loaded: %+v", loaded) + } + marshalled, err := json.Marshal(loaded) + if err != nil { + t.Fatal(err) + } + lower := strings.ToLower(string(marshalled)) + for _, key := range []string{"last_seen", "lastseen", "created_at", "createdat", "updated_at", "updatedat", "permissions", "payload." + stamp} { + if strings.Contains(lower, key) { + t.Fatalf("a marshalled user carries %s: %s", key, marshalled) + } + } }) // T-12.1-25: a failing last_seen write never fails authentication.