Prevent simultaneous editing of comments and issues (#31053)
fixes #22907 Tested: - [x] issue content edit - [x] issue content change tasklist - [x] pull request content edit - [x] pull request change tasklist  (cherry picked from commit aa92b13164e84c26be91153b6022220ce0a27720) Conflicts: models/issues/comment.goc7a389f2b2
[FEAT] allow setting the update date on issues and comments options/locale/locale_en-US.ini trivial context conflicts routers/api/v1/repo/issue_comment.go routers/api/v1/repo/issue_comment_attachment.go services/issue/comments.go services/issue/content.go user blocking is implemented differently in Forgejo routers/web/repo/issue.go trivial difference from 6a0750177f Allow to save empty comment user blocking is implemented differently in Forgejo templates/repo/issue/view_content/conversation.tmpl templates changed a lot in Forgejo but the change is trivially ported tests/integration/issue_test.go other tests were added in the same region web_src/js/features/repo-issue-edit.js the code is still web_src/js/features/repo-legacy.js trivially ported
This commit is contained in:
parent
73706ae26d
commit
ca0921a95a
21 changed files with 190 additions and 36 deletions
|
@ -74,7 +74,7 @@ func CreateIssueComment(ctx context.Context, doer *user_model.User, repo *repo_m
|
|||
}
|
||||
|
||||
// UpdateComment updates information of comment.
|
||||
func UpdateComment(ctx context.Context, c *issues_model.Comment, doer *user_model.User, oldContent string) error {
|
||||
func UpdateComment(ctx context.Context, c *issues_model.Comment, contentVersion int, doer *user_model.User, oldContent string) error {
|
||||
needsContentHistory := c.Content != oldContent && c.Type.HasContentSupport()
|
||||
if needsContentHistory {
|
||||
hasContentHistory, err := issues_model.HasIssueContentHistory(ctx, c.IssueID, c.ID)
|
||||
|
@ -89,7 +89,7 @@ func UpdateComment(ctx context.Context, c *issues_model.Comment, doer *user_mode
|
|||
}
|
||||
}
|
||||
|
||||
if err := issues_model.UpdateComment(ctx, c, doer); err != nil {
|
||||
if err := issues_model.UpdateComment(ctx, c, contentVersion, doer); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
|
|
|
@ -12,10 +12,10 @@ import (
|
|||
)
|
||||
|
||||
// ChangeContent changes issue content, as the given user.
|
||||
func ChangeContent(ctx context.Context, issue *issues_model.Issue, doer *user_model.User, content string) (err error) {
|
||||
func ChangeContent(ctx context.Context, issue *issues_model.Issue, doer *user_model.User, content string, contentVersion int) (err error) {
|
||||
oldContent := issue.Content
|
||||
|
||||
if err := issues_model.ChangeIssueContent(ctx, issue, doer, content); err != nil {
|
||||
if err := issues_model.ChangeIssueContent(ctx, issue, doer, content, contentVersion); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue