aboutsummaryrefslogtreecommitdiffstats
path: root/services/issue/label.go
diff options
context:
space:
mode:
Diffstat (limited to 'services/issue/label.go')
-rw-r--r--services/issue/label.go38
1 files changed, 15 insertions, 23 deletions
diff --git a/services/issue/label.go b/services/issue/label.go
index 6b8070d8aa..e30983df37 100644
--- a/services/issue/label.go
+++ b/services/issue/label.go
@@ -46,32 +46,24 @@ func AddLabels(ctx context.Context, issue *issues_model.Issue, doer *user_model.
// RemoveLabel removes a label from issue by given ID.
func RemoveLabel(ctx context.Context, issue *issues_model.Issue, doer *user_model.User, label *issues_model.Label) error {
- dbCtx, committer, err := db.TxContext(ctx)
- if err != nil {
- return err
- }
- defer committer.Close()
-
- if err := issue.LoadRepo(dbCtx); err != nil {
- return err
- }
-
- perm, err := access_model.GetUserRepoPermission(dbCtx, issue.Repo, doer)
- if err != nil {
- return err
- }
- if !perm.CanWriteIssuesOrPulls(issue.IsPull) {
- if label.OrgID > 0 {
- return issues_model.ErrOrgLabelNotExist{}
+ if err := db.WithTx(ctx, func(ctx context.Context) error {
+ if err := issue.LoadRepo(ctx); err != nil {
+ return err
}
- return issues_model.ErrRepoLabelNotExist{}
- }
- if err := issues_model.DeleteIssueLabel(dbCtx, issue, label, doer); err != nil {
- return err
- }
+ perm, err := access_model.GetUserRepoPermission(ctx, issue.Repo, doer)
+ if err != nil {
+ return err
+ }
+ if !perm.CanWriteIssuesOrPulls(issue.IsPull) {
+ if label.OrgID > 0 {
+ return issues_model.ErrOrgLabelNotExist{}
+ }
+ return issues_model.ErrRepoLabelNotExist{}
+ }
- if err := committer.Commit(); err != nil {
+ return issues_model.DeleteIssueLabel(ctx, issue, label, doer)
+ }); err != nil {
return err
}