From 93f7dd611ad288a149f5da5463867d224334815f Mon Sep 17 00:00:00 2001 From: kolaente Date: Tue, 17 Sep 2024 10:46:14 +0200 Subject: [PATCH] fix: reset id before creating (cherry picked from commit c252c8f0cd1c09a74b564e67a855cca4cd436585) --- pkg/models/kanban.go | 1 + pkg/models/label_task.go | 7 +++++-- pkg/models/link_sharing.go | 1 + pkg/models/project_team.go | 1 + pkg/models/project_users.go | 2 +- pkg/models/project_view.go | 1 + pkg/models/reaction.go | 1 + pkg/models/saved_filters.go | 1 + pkg/models/subscription.go | 1 + pkg/models/task_comments.go | 1 + pkg/models/task_relation.go | 1 + pkg/models/team_members.go | 2 +- pkg/models/teams.go | 1 + pkg/models/webhooks.go | 1 + 14 files changed, 18 insertions(+), 4 deletions(-) diff --git a/pkg/models/kanban.go b/pkg/models/kanban.go index 5ee58eed3..9be2dba2d 100644 --- a/pkg/models/kanban.go +++ b/pkg/models/kanban.go @@ -306,6 +306,7 @@ func (b *Bucket) Create(s *xorm.Session, a web.Auth) (err error) { } b.CreatedByID = b.CreatedBy.ID + b.ID = 0 _, err = s.Insert(b) if err != nil { return diff --git a/pkg/models/label_task.go b/pkg/models/label_task.go index 8386d36b1..0304a3c97 100644 --- a/pkg/models/label_task.go +++ b/pkg/models/label_task.go @@ -97,7 +97,7 @@ func (lt *LabelTask) Create(s *xorm.Session, auth web.Auth) (err error) { return ErrLabelIsAlreadyOnTask{lt.LabelID, lt.TaskID} } - // Insert it + lt.ID = 0 _, err = s.Insert(lt) if err != nil { return err @@ -386,7 +386,10 @@ func (t *Task) UpdateTaskLabels(s *xorm.Session, creator web.Auth, labels []*Lab } // Insert it - _, err = s.Insert(&LabelTask{LabelID: l.ID, TaskID: t.ID}) + _, err = s.Insert(&LabelTask{ + LabelID: l.ID, + TaskID: t.ID, + }) if err != nil { return err } diff --git a/pkg/models/link_sharing.go b/pkg/models/link_sharing.go index bc61f21f3..ad166b8cc 100644 --- a/pkg/models/link_sharing.go +++ b/pkg/models/link_sharing.go @@ -154,6 +154,7 @@ func (share *LinkSharing) Create(s *xorm.Session, a web.Auth) (err error) { share.SharingType = SharingTypeWithoutPassword } + share.ID = 0 _, err = s.Insert(share) share.Password = "" share.SharedBy, _ = user.GetFromAuth(a) diff --git a/pkg/models/project_team.go b/pkg/models/project_team.go index 40dc1acae..7811b015b 100644 --- a/pkg/models/project_team.go +++ b/pkg/models/project_team.go @@ -104,6 +104,7 @@ func (tl *TeamProject) Create(s *xorm.Session, a web.Auth) (err error) { } // Insert the new team + tl.ID = 0 _, err = s.Insert(tl) if err != nil { return err diff --git a/pkg/models/project_users.go b/pkg/models/project_users.go index 58bd0cdfa..1c67e9eb9 100644 --- a/pkg/models/project_users.go +++ b/pkg/models/project_users.go @@ -110,7 +110,7 @@ func (lu *ProjectUser) Create(s *xorm.Session, a web.Auth) (err error) { return ErrUserAlreadyHasAccess{UserID: lu.UserID, ProjectID: lu.ProjectID} } - // Insert user <-> project relation + lu.ID = 0 _, err = s.Insert(lu) if err != nil { return err diff --git a/pkg/models/project_view.go b/pkg/models/project_view.go index b2e5ba8ef..85a31cd25 100644 --- a/pkg/models/project_view.go +++ b/pkg/models/project_view.go @@ -263,6 +263,7 @@ func (pv *ProjectView) Create(s *xorm.Session, a web.Auth) (err error) { } func createProjectView(s *xorm.Session, p *ProjectView, a web.Auth, createBacklogBucket bool, addExistingTasksToView bool) (err error) { + p.ID = 0 _, err = s.Insert(p) if err != nil { return diff --git a/pkg/models/reaction.go b/pkg/models/reaction.go index 965341921..fc38786a2 100644 --- a/pkg/models/reaction.go +++ b/pkg/models/reaction.go @@ -186,6 +186,7 @@ func (r *Reaction) Create(s *xorm.Session, a web.Auth) (err error) { return } + r.ID = 0 _, err = s.Insert(r) return } diff --git a/pkg/models/saved_filters.go b/pkg/models/saved_filters.go index 4b7370e04..b5f63a28e 100644 --- a/pkg/models/saved_filters.go +++ b/pkg/models/saved_filters.go @@ -121,6 +121,7 @@ func (sf *SavedFilter) toProject() *Project { // @Router /filters [put] func (sf *SavedFilter) Create(s *xorm.Session, auth web.Auth) (err error) { sf.OwnerID = auth.GetID() + sf.ID = 0 _, err = s.Insert(sf) if err != nil { return diff --git a/pkg/models/subscription.go b/pkg/models/subscription.go index ee0bfa86c..6b5da305c 100644 --- a/pkg/models/subscription.go +++ b/pkg/models/subscription.go @@ -147,6 +147,7 @@ func (sb *Subscription) TableName() string { func (sb *Subscription) Create(s *xorm.Session, auth web.Auth) (err error) { // Rights method already does the validation of the entity type, so we don't need to do that here + sb.ID = 0 sb.UserID = auth.GetID() sub, err := GetSubscriptionForUser(s, sb.EntityType, sb.EntityID, auth) diff --git a/pkg/models/task_comments.go b/pkg/models/task_comments.go index 6d1b374af..0bddb5af2 100644 --- a/pkg/models/task_comments.go +++ b/pkg/models/task_comments.go @@ -66,6 +66,7 @@ func (tc *TaskComment) TableName() string { // @Router /tasks/{taskID}/comments [put] func (tc *TaskComment) Create(s *xorm.Session, a web.Auth) (err error) { + tc.ID = 0 tc.Created = time.Time{} tc.Updated = time.Time{} diff --git a/pkg/models/task_relation.go b/pkg/models/task_relation.go index f8304a77e..0ad9f64a2 100644 --- a/pkg/models/task_relation.go +++ b/pkg/models/task_relation.go @@ -230,6 +230,7 @@ func (rel *TaskRelation) Create(s *xorm.Session, a web.Auth) error { return err } rel.CreatedByID = rel.CreatedBy.ID + rel.ID = 0 // Build up the other relation (see the comment above for explanation) otherRelation := &TaskRelation{ diff --git a/pkg/models/team_members.go b/pkg/models/team_members.go index 814dd839e..7bdce65ed 100644 --- a/pkg/models/team_members.go +++ b/pkg/models/team_members.go @@ -62,7 +62,7 @@ func (tm *TeamMember) Create(s *xorm.Session, a web.Auth) (err error) { return ErrUserIsMemberOfTeam{tm.TeamID, tm.UserID} } - // Insert the user + tm.ID = 0 _, err = s.Insert(tm) if err != nil { return err diff --git a/pkg/models/teams.go b/pkg/models/teams.go index 85923b948..34c2c8255 100644 --- a/pkg/models/teams.go +++ b/pkg/models/teams.go @@ -236,6 +236,7 @@ func (t *Team) CreateNewTeam(s *xorm.Session, a web.Auth, firstUserShouldBeAdmin return ErrTeamNameCannotBeEmpty{} } + t.ID = 0 t.CreatedByID = doer.ID t.CreatedBy = doer diff --git a/pkg/models/webhooks.go b/pkg/models/webhooks.go index a6c9e12dd..eb2d16f2a 100644 --- a/pkg/models/webhooks.go +++ b/pkg/models/webhooks.go @@ -127,6 +127,7 @@ func (w *Webhook) Create(s *xorm.Session, a web.Auth) (err error) { } w.CreatedByID = a.GetID() + w.ID = 0 _, err = s.Insert(w) if err != nil { return err