From cde4a9dabebf80e6907c9e455e97e2e39171537c Mon Sep 17 00:00:00 2001 From: Stephanie Hingtgen Date: Tue, 22 Apr 2025 01:46:13 -0600 Subject: [PATCH] [release-12.0.1] TeamMember: Treat null permission as member (#104195) (#104250) TeamMember: Treat null permission as member (#104195) Co-authored-by: Jo --- pkg/registry/apis/iam/legacy/user.go | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/pkg/registry/apis/iam/legacy/user.go b/pkg/registry/apis/iam/legacy/user.go index fc79f9d4e3f..0319abc1520 100644 --- a/pkg/registry/apis/iam/legacy/user.go +++ b/pkg/registry/apis/iam/legacy/user.go @@ -259,13 +259,24 @@ func (s *legacySQLStore) ListUserTeams(ctx context.Context, ns claims.NamespaceI var lastID int64 for rows.Next() { t := UserTeam{} - err := rows.Scan(&t.ID, &t.UID, &t.Name, &t.Permission) + + // regression: team_member.permission has been nulled in some instances + // Team memberships created before the permission column was added will have a NULL value + var nullablePermission *int64 + err := rows.Scan(&t.ID, &t.UID, &t.Name, &nullablePermission) if err != nil { return nil, err } - lastID = t.ID + if nullablePermission != nil { + t.Permission = team.PermissionType(*nullablePermission) + } else { + // treat NULL as member permission + t.Permission = team.PermissionType(0) + } + res.Items = append(res.Items, t) + lastID = t.ID if len(res.Items) > int(query.Pagination.Limit)-1 { res.Continue = lastID res.Items = res.Items[0 : len(res.Items)-1]