diff options
author | zuzuviewer <750938164@qq.com> | 2022-05-14 21:30:19 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-05-14 16:30:19 +0300 |
commit | 77e9346342ccea20157412820b08204f122f262f (patch) | |
tree | 373e172eaf315cbc57168194fece3e9886678ae7 | |
parent | b135313c478a241ce994d19e685f2a39d066fb92 (diff) | |
download | gitea-77e9346342ccea20157412820b08204f122f262f.tar.gz gitea-77e9346342ccea20157412820b08204f122f262f.zip |
Fix duplicate entry error when add team member (#19702)
-rw-r--r-- | models/org_team.go | 6 | ||||
-rw-r--r-- | models/organization/org.go | 6 |
2 files changed, 12 insertions, 0 deletions
diff --git a/models/org_team.go b/models/org_team.go index 40eb037452..0aba0cbb23 100644 --- a/models/org_team.go +++ b/models/org_team.go @@ -496,6 +496,12 @@ func AddTeamMember(team *organization.Team, userID int64) error { } defer committer.Close() + // check in transaction + isAlreadyMember, err = organization.IsTeamMember(ctx, team.OrgID, team.ID, userID) + if err != nil || isAlreadyMember { + return err + } + sess := db.GetEngine(ctx) if err := db.Insert(ctx, &organization.TeamUser{ diff --git a/models/organization/org.go b/models/organization/org.go index 3761335922..43d96793b1 100644 --- a/models/organization/org.go +++ b/models/organization/org.go @@ -594,6 +594,12 @@ func AddOrgUser(orgID, uid int64) error { } defer committer.Close() + // check in transaction + isAlreadyMember, err = IsOrganizationMember(ctx, orgID, uid) + if err != nil || isAlreadyMember { + return err + } + ou := &OrgUser{ UID: uid, OrgID: orgID, |