diff --git a/internal/auth/repository/eventsourcing/eventstore/auth_request.go b/internal/auth/repository/eventsourcing/eventstore/auth_request.go index 43f3713f9..bf22c9654 100644 --- a/internal/auth/repository/eventsourcing/eventstore/auth_request.go +++ b/internal/auth/repository/eventsourcing/eventstore/auth_request.go @@ -166,6 +166,11 @@ func (repo *AuthRequestRepo) CreateAuthRequest(ctx context.Context, request *dom if err := setOrgID(ctx, repo.OrgViewProvider, request); err != nil { return nil, err } + if request.UserID != "" && request.UserOrgID == "" { + if err := repo.selectUser(ctx, request, request.UserID); err != nil { + return nil, err + } + } if request.LoginHint != "" { err = repo.checkLoginName(ctx, request, request.LoginHint) logging.WithFields("login name", request.LoginHint, "id", request.ID, "applicationID", request.ApplicationID, "traceID", tracing.TraceIDFromCtx(ctx)).OnError(err).Info("login hint invalid") @@ -350,6 +355,13 @@ func (repo *AuthRequestRepo) SelectUser(ctx context.Context, authReqID, userID, return zerrors.ThrowNotFound(nil, "AUTH-2d3f4", "Errors.UserSession.NotFound") } } + if err := repo.selectUser(ctx, request, userID); err != nil { + return err + } + return repo.AuthRequests.UpdateAuthRequest(ctx, request) +} + +func (repo *AuthRequestRepo) selectUser(ctx context.Context, request *domain.AuthRequest, userID string) error { user, err := activeUserByID(ctx, repo.UserViewProvider, repo.UserEventProvider, repo.OrgViewProvider, repo.LockoutPolicyViewProvider, userID, false) if err != nil { return err @@ -362,7 +374,7 @@ func (repo *AuthRequestRepo) SelectUser(ctx context.Context, authReqID, userID, username = user.PreferredLoginName } request.SetUserInfo(user.ID, username, user.PreferredLoginName, user.DisplayName, user.AvatarKey, user.ResourceOwner) - return repo.AuthRequests.UpdateAuthRequest(ctx, request) + return nil } func (repo *AuthRequestRepo) VerifyPassword(ctx context.Context, authReqID, userID, resourceOwner, password, userAgentID string, info *domain.BrowserInfo) (err error) {