Skip to content

Commit 25421f0

Browse files
a1012112796techknowlogicklafriks
authored
ui: show 'owner' tag for real owner (#13689) (#13743)
* 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 bdb491e commit 25421f0

File tree

3 files changed

+43
-3
lines changed

3 files changed

+43
-3
lines changed

models/repo_permission.go

Lines changed: 21 additions & 0 deletions
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

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

templates/repo/issue/view_content/comments.tmpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
</div>
3030
<div class="header-right actions df ac">
3131
{{if not $.Repository.IsArchived}}
32-
{{if eq .PosterID .Issue.PosterID }}
32+
{{if or (and (eq .PosterID .Issue.PosterID) (eq .Issue.OriginalAuthorID 0)) (eq .Issue.OriginalAuthorID .OriginalAuthorID) }}
3333
<div class="item tag">
3434
{{$.i18n.Tr "repo.issues.poster"}}
3535
</div>

0 commit comments

Comments
 (0)