From 780f7a4cf18459937fb2bb65eeca20dcc18e7776 Mon Sep 17 00:00:00 2001 From: oppiliappan Date: Wed, 21 May 2025 12:27:40 +0100 Subject: [PATCH] appview: repo/index: show fork button only to repo owners Change-Id: tvvnxqyykkwrxxxxprksnnpwutmskwmv also do GetForkInfo only if repo-owner --- appview/pages/pages.go | 2 +- appview/pages/templates/repo/index.html | 3 ++- appview/state/repo.go | 13 ++++++++----- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/appview/pages/pages.go b/appview/pages/pages.go index 998fbc5..1f4858a 100644 --- a/appview/pages/pages.go +++ b/appview/pages/pages.go @@ -410,7 +410,7 @@ type RepoIndexParams struct { CommitsTrunc []*object.Commit TagsTrunc []*types.TagReference BranchesTrunc []types.Branch - ForkInfo types.ForkInfo + ForkInfo *types.ForkInfo types.RepoIndexResponse HTMLReadme template.HTML Raw bool diff --git a/appview/pages/templates/repo/index.html b/appview/pages/templates/repo/index.html index 0b7bc55..4b508e0 100644 --- a/appview/pages/templates/repo/index.html +++ b/appview/pages/templates/repo/index.html @@ -66,7 +66,8 @@ {{ end }} - {{ if .ForkInfo.IsFork }} + {{ $isOwner := and .LoggedInUser (eq .LoggedInUser.Did .RepoInfo.OwnerDid) }} + {{ if and $isOwner .ForkInfo }} {{ $disabled := "" }} {{ $title := "" }} {{ if eq .ForkInfo.Status 0 }} diff --git a/appview/state/repo.go b/appview/state/repo.go index a7bad73..0141f41 100644 --- a/appview/state/repo.go +++ b/appview/state/repo.go @@ -124,10 +124,13 @@ func (s *State) RepoIndex(w http.ResponseWriter, r *http.Request) { 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 && user.Did == repoInfo.OwnerDid { + 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{ @@ -137,7 +140,7 @@ func (s *State) RepoIndex(w http.ResponseWriter, r *http.Request) { RepoIndexResponse: result, CommitsTrunc: commitsTrunc, TagsTrunc: tagsTrunc, - ForkInfo: *forkInfo, + ForkInfo: forkInfo, BranchesTrunc: branchesTrunc, EmailToDidOrHandle: EmailToDidOrHandle(s, emails), }) -- 2.43.0