fix: mitigate overload risk in processProject on user memberships (#2665)

This commit is contained in:
Livio Amstutz
2021-11-12 15:06:26 +01:00
committed by GitHub
parent 4fc2582b4c
commit cfdb8c3301
4 changed files with 29 additions and 12 deletions

View File

@@ -2,11 +2,11 @@ package handler
import (
"context"
"github.com/caos/zitadel/internal/eventstore/v1"
"github.com/caos/logging"
"github.com/caos/zitadel/internal/errors"
v1 "github.com/caos/zitadel/internal/eventstore/v1"
es_models "github.com/caos/zitadel/internal/eventstore/v1/models"
"github.com/caos/zitadel/internal/eventstore/v1/query"
es_sdk "github.com/caos/zitadel/internal/eventstore/v1/sdk"
@@ -244,17 +244,21 @@ func (m *UserMembership) fillProjectDisplayName(member *usr_es_model.UserMembers
}
func (m *UserMembership) updateProjectDisplayName(event *es_models.Event) error {
project, err := m.getProjectByID(context.Background(), event.AggregateID)
proj := new(proj_es_model.Project)
err := proj.SetData(event)
if err != nil {
return err
}
if proj.Name == "" {
return m.view.ProcessedUserMembershipSequence(event)
}
memberships, err := m.view.UserMembershipsByAggregateID(event.AggregateID)
if err != nil {
return err
}
for _, membership := range memberships {
membership.DisplayName = project.Name
membership.DisplayName = proj.Name
}
return m.view.BulkPutUserMemberships(memberships, event)
}