From e1cfc242abf1ed55bf1c7315c9d3ff348ac9bd66 Mon Sep 17 00:00:00 2001 From: Silvan Date: Thu, 16 Jun 2022 15:06:17 +0200 Subject: [PATCH] fix(auth): read user if not found after create (#3835) --- .../repository/eventsourcing/handler/user.go | 35 +++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/internal/auth/repository/eventsourcing/handler/user.go b/internal/auth/repository/eventsourcing/handler/user.go index ba25c5a99..f49cc44d3 100644 --- a/internal/auth/repository/eventsourcing/handler/user.go +++ b/internal/auth/repository/eventsourcing/handler/user.go @@ -18,6 +18,7 @@ import ( query2 "github.com/zitadel/zitadel/internal/query" "github.com/zitadel/zitadel/internal/repository/org" user_repo "github.com/zitadel/zitadel/internal/repository/user" + usr_view "github.com/zitadel/zitadel/internal/user/repository/view" view_model "github.com/zitadel/zitadel/internal/user/repository/view/model" ) @@ -164,14 +165,44 @@ func (u *User) ProcessUser(event *es_models.Event) (err error) { user_repo.HumanPasswordlessInitCodeRequestedType: user, err = u.view.UserByID(event.AggregateID, event.InstanceID) if err != nil { - return err + if !errors.IsNotFound(err) { + return err + } + query, err := usr_view.UserByIDQuery(event.AggregateID, event.InstanceID, 0) + if err != nil { + return err + } + events, err := u.es.FilterEvents(context.Background(), query) + if err != nil { + return err + } + for _, e := range events { + if err = user.AppendEvent(e); err != nil { + return err + } + } } err = user.AppendEvent(event) case user_repo.UserDomainClaimedType, user_repo.UserUserNameChangedType: user, err = u.view.UserByID(event.AggregateID, event.InstanceID) if err != nil { - return err + if !errors.IsNotFound(err) { + return err + } + query, err := usr_view.UserByIDQuery(event.AggregateID, event.InstanceID, 0) + if err != nil { + return err + } + events, err := u.es.FilterEvents(context.Background(), query) + if err != nil { + return err + } + for _, e := range events { + if err = user.AppendEvent(e); err != nil { + return err + } + } } err = user.AppendEvent(event) if err != nil {