code.gitea.io/gitea@v1.22.3/services/issue/content.go (about) 1 // Copyright 2019 The Gitea Authors. All rights reserved. 2 // SPDX-License-Identifier: MIT 3 4 package issue 5 6 import ( 7 "context" 8 9 issues_model "code.gitea.io/gitea/models/issues" 10 access_model "code.gitea.io/gitea/models/perm/access" 11 user_model "code.gitea.io/gitea/models/user" 12 notify_service "code.gitea.io/gitea/services/notify" 13 ) 14 15 // ChangeContent changes issue content, as the given user. 16 func ChangeContent(ctx context.Context, issue *issues_model.Issue, doer *user_model.User, content string) error { 17 if err := issue.LoadRepo(ctx); err != nil { 18 return err 19 } 20 21 if user_model.IsUserBlockedBy(ctx, doer, issue.PosterID, issue.Repo.OwnerID) { 22 if isAdmin, _ := access_model.IsUserRepoAdmin(ctx, issue.Repo, doer); !isAdmin { 23 return user_model.ErrBlockedUser 24 } 25 } 26 27 oldContent := issue.Content 28 29 if err := issues_model.ChangeIssueContent(ctx, issue, doer, content); err != nil { 30 return err 31 } 32 33 notify_service.IssueChangeContent(ctx, doer, issue, oldContent) 34 35 return nil 36 }