From fca4c5e7af90c7023559cef31d2526a60515277a Mon Sep 17 00:00:00 2001 From: tjh Date: Wed, 21 May 2025 11:22:58 +0000 Subject: [PATCH] appview: repo/index: show fork-sync button only to owners & collaborators Also skips getForkInfo for non owners/collaborators. --- appview/state/repo.go | 11 +++++++---- appview/pages/templates/repo/index.html | 4 +++- 2 file(s) changed, 10 insertion(s)(+), 5 deletion(s)(-) diff --git a/appview/state/repo.go b/appview/state/repo.go --- a/appview/state/repo.go +++ b/appview/state/repo.go @@ -124,10 +124,13 @@ user := s.oauth.GetUser(r) repoInfo := f.RepoInfo(s, user) - forkInfo, err := getForkInfo(repoInfo, s, f, w, user) - if err != nil { - log.Printf("Failed to fetch fork information: %v", err) - return + var forkInfo *types.ForkInfo + if user != nil && (repoInfo.Roles.IsOwner() || repoInfo.Roles.IsCollaborator()) { + forkInfo, err = getForkInfo(repoInfo, s, f, w, user) + if err != nil { + log.Printf("Failed to fetch fork information: %v", err) + return + } } s.pages.RepoIndexPage(w, pages.RepoIndexParams{ diff --git a/appview/pages/templates/repo/index.html b/appview/pages/templates/repo/index.html --- a/appview/pages/templates/repo/index.html +++ b/appview/pages/templates/repo/index.html @@ -66,7 +66,9 @@ {{ end }} - {{ if and .ForkInfo .ForkInfo.IsFork }} + {{ $isOwner := and .LoggedInUser .RepoInfo.Roles.IsOwner }} + {{ $isCollaborator := and .LoggedInUser .RepoInfo.Roles.IsCollaborator }} + {{ if and (or $isOwner $isCollaborator) .ForkInfo .ForkInfo.IsFork }} {{ $disabled := "" }} {{ $title := "" }} {{ if eq .ForkInfo.Status 0 }} -- tangled.sh