Zanzana: Fix reconciling role with empty UID (#106045)

This commit is contained in:
Alexander Zobnin
2025-05-27 14:23:29 +02:00
committed by GitHub
parent c0bb72cdb5
commit ef14992f00
2 changed files with 6 additions and 2 deletions
@@ -154,8 +154,11 @@ func managedPermissionsCollector(store db.DB, kind string) legacyTupleCollector
subject = zanzana.NewTupleEntry(zanzana.TypeUser, p.UserUID, "")
} else if len(p.TeamUID) > 0 {
subject = zanzana.NewTupleEntry(zanzana.TypeTeam, p.TeamUID, zanzana.RelationTeamMember)
} else {
} else if len(p.BasicRoleName) > 0 {
subject = zanzana.NewTupleEntry(zanzana.TypeRole, zanzana.TranslateBasicRole(p.BasicRoleName), zanzana.RelationAssignee)
} else {
reconcilerLogger.Debug("unrecognized permission", "permission", p)
continue
}
tuple, ok := zanzana.TranslateToResourceTuple(subject, p.Action, p.Kind, p.Identifier)
@@ -21,6 +21,7 @@ import (
)
var tracer = otel.Tracer("github.com/grafana/grafana/pkg/accesscontrol/migrator")
var reconcilerLogger = log.New("zanzana.reconciler")
// ZanzanaReconciler is a component to reconcile RBAC permissions to zanzana.
// We should rewrite the migration after we have "migrated" all possible actions
@@ -40,7 +41,7 @@ type ZanzanaReconciler struct {
func ProvideZanzanaReconciler(cfg *setting.Cfg, features featuremgmt.FeatureToggles, client zanzana.Client, store db.DB, lock *serverlock.ServerLockService, folderService folder.Service) *ZanzanaReconciler {
zanzanaReconciler := &ZanzanaReconciler{
cfg: cfg,
log: log.New("zanzana.reconciler"),
log: reconcilerLogger,
features: features,
client: client,
lock: lock,