From 06be492e0b4f3cf7fac6ae3fbae37ff158ec61f7 Mon Sep 17 00:00:00 2001 From: zetta Date: Wed, 15 Feb 2023 17:25:12 +0800 Subject: [PATCH 1/3] fix incorrect role labels for migrated issues and comments --- models/issues/comment.go | 5 +++++ models/issues/issue.go | 5 +++++ routers/web/repo/issue.go | 12 ++++++++---- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/models/issues/comment.go b/models/issues/comment.go index c935e4ac91a69..36e7b8e785e30 100644 --- a/models/issues/comment.go +++ b/models/issues/comment.go @@ -1244,3 +1244,8 @@ func FixCommentTypeLabelWithOutsideLabels(ctx context.Context) (int64, error) { return res.RowsAffected() } + +// HasOriginalAuthor returns if a comment was migrated and has an original author. +func (c *Comment) HasOriginalAuthor() bool { + return c.OriginalAuthor != "" && c.OriginalAuthorID != 0 +} diff --git a/models/issues/issue.go b/models/issues/issue.go index 62b936331b92d..e4710032319df 100644 --- a/models/issues/issue.go +++ b/models/issues/issue.go @@ -2403,3 +2403,8 @@ func DeleteOrphanedIssues(ctx context.Context) error { } return nil } + +// HasOriginalAuthor returns if an issue was migrated and has an original author. +func (c *Issue) HasOriginalAuthor() bool { + return c.OriginalAuthor != "" && c.OriginalAuthorID != 0 +} diff --git a/routers/web/repo/issue.go b/routers/web/repo/issue.go index 3cd29c2b6d749..6c3bae6e07536 100644 --- a/routers/web/repo/issue.go +++ b/routers/web/repo/issue.go @@ -1142,7 +1142,11 @@ func NewIssuePost(ctx *context.Context) { } // roleDescriptor returns the Role Descriptor for a comment in/with the given repo, poster and issue -func roleDescriptor(ctx stdCtx.Context, repo *repo_model.Repository, poster *user_model.User, issue *issues_model.Issue) (issues_model.RoleDescriptor, error) { +func roleDescriptor(ctx stdCtx.Context, repo *repo_model.Repository, poster *user_model.User, issue *issues_model.Issue, hasOriginalAuthor bool) (issues_model.RoleDescriptor, error) { + if hasOriginalAuthor { + return issues_model.RoleDescriptorNone, nil + } + perm, err := access_model.GetUserRepoPermission(ctx, repo, poster) if err != nil { return issues_model.RoleDescriptorNone, err @@ -1444,7 +1448,7 @@ func ViewIssue(ctx *context.Context) { // check if dependencies can be created across repositories ctx.Data["AllowCrossRepositoryDependencies"] = setting.Service.AllowCrossRepositoryDependencies - if issue.ShowRole, err = roleDescriptor(ctx, repo, issue.Poster, issue); err != nil { + if issue.ShowRole, err = roleDescriptor(ctx, repo, issue.Poster, issue, issue.HasOriginalAuthor()); err != nil { ctx.ServerError("roleDescriptor", err) return } @@ -1483,7 +1487,7 @@ func ViewIssue(ctx *context.Context) { continue } - comment.ShowRole, err = roleDescriptor(ctx, repo, comment.Poster, issue) + comment.ShowRole, err = roleDescriptor(ctx, repo, comment.Poster, issue, comment.HasOriginalAuthor()) if err != nil { ctx.ServerError("roleDescriptor", err) return @@ -1582,7 +1586,7 @@ func ViewIssue(ctx *context.Context) { continue } - c.ShowRole, err = roleDescriptor(ctx, repo, c.Poster, issue) + c.ShowRole, err = roleDescriptor(ctx, repo, c.Poster, issue, c.HasOriginalAuthor()) if err != nil { ctx.ServerError("roleDescriptor", err) return From 038529f6c677435f9d7b4ef1ecd4d13ec857b924 Mon Sep 17 00:00:00 2001 From: zeripath Date: Wed, 15 Feb 2023 15:10:48 +0000 Subject: [PATCH 2/3] Update models/issues/issue.go --- models/issues/issue.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/models/issues/issue.go b/models/issues/issue.go index e4710032319df..dbe70085957dd 100644 --- a/models/issues/issue.go +++ b/models/issues/issue.go @@ -2405,6 +2405,6 @@ func DeleteOrphanedIssues(ctx context.Context) error { } // HasOriginalAuthor returns if an issue was migrated and has an original author. -func (c *Issue) HasOriginalAuthor() bool { +func (issue *Issue) HasOriginalAuthor() bool { return c.OriginalAuthor != "" && c.OriginalAuthorID != 0 } From 099555444bdda01967cbf03a45dfbf0c338898f3 Mon Sep 17 00:00:00 2001 From: zeripath Date: Wed, 15 Feb 2023 15:11:40 +0000 Subject: [PATCH 3/3] Update models/issues/issue.go --- models/issues/issue.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/models/issues/issue.go b/models/issues/issue.go index dbe70085957dd..e0dcf3d269ee0 100644 --- a/models/issues/issue.go +++ b/models/issues/issue.go @@ -2406,5 +2406,5 @@ func DeleteOrphanedIssues(ctx context.Context) error { // HasOriginalAuthor returns if an issue was migrated and has an original author. func (issue *Issue) HasOriginalAuthor() bool { - return c.OriginalAuthor != "" && c.OriginalAuthorID != 0 + return issue.OriginalAuthor != "" && issue.OriginalAuthorID != 0 }