Skip to content

Commit 1e5247d

Browse files
a1012112796techknowlogicklafriks
authored
ui: show 'owner' tag for real owner (#13689)
* ui: show 'owner' tag for real owner Signed-off-by: a1012112796 <[email protected]> * Update custom/conf/app.example.ini * simplify logic fix logic fix a small bug about original author * remove system manager tag Co-authored-by: techknowlogick <[email protected]> Co-authored-by: Lauris BH <[email protected]>
1 parent 48c9865 commit 1e5247d

File tree

3 files changed

+43
-3
lines changed

3 files changed

+43
-3
lines changed

models/repo_permission.go

+21
Original file line numberDiff line numberDiff line change
@@ -271,6 +271,27 @@ func getUserRepoPermission(e Engine, repo *Repository, user *User) (perm Permiss
271271
return
272272
}
273273

274+
// IsUserRealRepoAdmin check if this user is real repo admin
275+
func IsUserRealRepoAdmin(repo *Repository, user *User) (bool, error) {
276+
if repo.OwnerID == user.ID {
277+
return true, nil
278+
}
279+
280+
sess := x.NewSession()
281+
defer sess.Close()
282+
283+
if err := repo.getOwner(sess); err != nil {
284+
return false, err
285+
}
286+
287+
accessMode, err := accessLevel(sess, user, repo)
288+
if err != nil {
289+
return false, err
290+
}
291+
292+
return accessMode >= AccessModeAdmin, nil
293+
}
294+
274295
// IsUserRepoAdmin return true if user has admin right of a repo
275296
func IsUserRepoAdmin(repo *Repository, user *User) (bool, error) {
276297
return isUserRepoAdmin(x, repo, user)

routers/repo/issue.go

+21-2
Original file line numberDiff line numberDiff line change
@@ -980,8 +980,27 @@ func commentTag(repo *models.Repository, poster *models.User, issue *models.Issu
980980
return models.CommentTagNone, err
981981
}
982982
if perm.IsOwner() {
983-
return models.CommentTagOwner, nil
984-
} else if perm.CanWrite(models.UnitTypeCode) {
983+
if !poster.IsAdmin {
984+
return models.CommentTagOwner, nil
985+
}
986+
987+
ok, err := models.IsUserRealRepoAdmin(repo, poster)
988+
if err != nil {
989+
return models.CommentTagNone, err
990+
}
991+
992+
if ok {
993+
return models.CommentTagOwner, nil
994+
}
995+
996+
if ok, err = repo.IsCollaborator(poster.ID); ok && err == nil {
997+
return models.CommentTagWriter, nil
998+
}
999+
1000+
return models.CommentTagNone, err
1001+
}
1002+
1003+
if perm.CanWrite(models.UnitTypeCode) {
9851004
return models.CommentTagWriter, nil
9861005
}
9871006

templates/repo/issue/view_content/comments.tmpl

+1-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
</div>
4444
<div class="comment-header-right actions df ac">
4545
{{if not $.Repository.IsArchived}}
46-
{{if eq .PosterID .Issue.PosterID }}
46+
{{if or (and (eq .PosterID .Issue.PosterID) (eq .Issue.OriginalAuthorID 0)) (eq .Issue.OriginalAuthorID .OriginalAuthorID) }}
4747
<div class="ui basic label">
4848
{{$.i18n.Tr "repo.issues.poster"}}
4949
</div>

0 commit comments

Comments
 (0)