mirror of
https://github.com/go-gitea/gitea
synced 2025-07-22 18:28:37 +00:00
Improve issue history dialog and make poster can delete their own history (#27323)
Fix #27313 (see the comment) And some UI improvements: ### Before   ### After   
This commit is contained in:
@@ -11,7 +11,6 @@ import (
|
||||
|
||||
"code.gitea.io/gitea/models/avatars"
|
||||
issues_model "code.gitea.io/gitea/models/issues"
|
||||
"code.gitea.io/gitea/models/unit"
|
||||
"code.gitea.io/gitea/modules/context"
|
||||
"code.gitea.io/gitea/modules/log"
|
||||
"code.gitea.io/gitea/modules/setting"
|
||||
@@ -91,11 +90,16 @@ func GetContentHistoryList(ctx *context.Context) {
|
||||
// Admins or owners can always delete history revisions. Normal users can only delete own history revisions.
|
||||
func canSoftDeleteContentHistory(ctx *context.Context, issue *issues_model.Issue, comment *issues_model.Comment,
|
||||
history *issues_model.ContentHistory,
|
||||
) bool {
|
||||
canSoftDelete := false
|
||||
if ctx.Repo.IsOwner() {
|
||||
) (canSoftDelete bool) {
|
||||
// CanWrite means the doer can manage the issue/PR list
|
||||
if ctx.Repo.IsOwner() || ctx.Repo.CanWriteIssuesOrPulls(issue.IsPull) {
|
||||
canSoftDelete = true
|
||||
} else if ctx.Repo.CanWrite(unit.TypeIssues) {
|
||||
} else {
|
||||
// for read-only users, they could still post issues or comments,
|
||||
// they should be able to delete the history related to their own issue/comment, a case is:
|
||||
// 1. the user posts some sensitive data
|
||||
// 2. then the repo owner edits the post but didn't remove the sensitive data
|
||||
// 3. the poster wants to delete the edited history revision
|
||||
if comment == nil {
|
||||
// the issue poster or the history poster can soft-delete
|
||||
canSoftDelete = ctx.Doer.ID == issue.PosterID || ctx.Doer.ID == history.PosterID
|
||||
|
Reference in New Issue
Block a user