From 1f363dbd43e6caeee03fed1c6ac5c303d63ac990 Mon Sep 17 00:00:00 2001 From: kolaente Date: Mon, 2 Mar 2026 09:16:55 +0100 Subject: [PATCH] fix(events): defer event dispatch for user creation and task positions Refs #2315 --- pkg/models/task_position.go | 6 ++++-- pkg/user/user_create.go | 5 +---- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/pkg/models/task_position.go b/pkg/models/task_position.go index 9465f2d4a..64678d1a4 100644 --- a/pkg/models/task_position.go +++ b/pkg/models/task_position.go @@ -238,9 +238,10 @@ func RecalculateTaskPositions(s *xorm.Session, view *ProjectView, a web.Auth) (e log.Debugf("Inserted %d new positions for %d total tasks in view %d", count, len(allTasks), view.ID) - return events.Dispatch(&TaskPositionsRecalculatedEvent{ + events.DispatchOnCommit(s, &TaskPositionsRecalculatedEvent{ NewTaskPositions: newPositions, }) + return nil } func getPositionsForView(s *xorm.Session, view *ProjectView) (positions []*TaskPosition, err error) { @@ -297,9 +298,10 @@ func recalculateTaskPositionsForRepair(s *xorm.Session, view *ProjectView) error log.Debugf("Repair: inserted %d new positions for view %d", count, view.ID) - return events.Dispatch(&TaskPositionsRecalculatedEvent{ + events.DispatchOnCommit(s, &TaskPositionsRecalculatedEvent{ NewTaskPositions: newPositions, }) + return nil } func calculateNewPositionForTask(s *xorm.Session, a web.Auth, t *Task, view *ProjectView) (*TaskPosition, error) { diff --git a/pkg/user/user_create.go b/pkg/user/user_create.go index 85f03614b..6b2c542b0 100644 --- a/pkg/user/user_create.go +++ b/pkg/user/user_create.go @@ -88,12 +88,9 @@ func CreateUser(s *xorm.Session, user *User) (newUser *User, err error) { return nil, err } - err = events.Dispatch(&CreatedEvent{ + events.DispatchOnCommit(s, &CreatedEvent{ User: newUserOut, }) - if err != nil { - return nil, err - } // Don't send a mail if no mailer is configured if !config.MailerEnabled.GetBool() || user.Issuer != IssuerLocal {