Monorepo for Tangled tangled.org

appview: repo/index: show fork button only to repo owners

also do GetForkInfo only if repo-owner

Changed files
+11 -7
appview
pages
templates
repo
state
+1 -1
appview/pages/pages.go
··· 410 410 CommitsTrunc []*object.Commit 411 411 TagsTrunc []*types.TagReference 412 412 BranchesTrunc []types.Branch 413 - ForkInfo types.ForkInfo 413 + ForkInfo *types.ForkInfo 414 414 types.RepoIndexResponse 415 415 HTMLReadme template.HTML 416 416 Raw bool
+2 -1
appview/pages/templates/repo/index.html
··· 66 66 {{ end }} 67 67 </optgroup> 68 68 </select> 69 - {{ if .ForkInfo.IsFork }} 69 + {{ $isOwner := and .LoggedInUser (eq .LoggedInUser.Did .RepoInfo.OwnerDid) }} 70 + {{ if and $isOwner .ForkInfo }} 70 71 {{ $disabled := "" }} 71 72 {{ $title := "" }} 72 73 {{ if eq .ForkInfo.Status 0 }}
+8 -5
appview/state/repo.go
··· 124 124 user := s.oauth.GetUser(r) 125 125 repoInfo := f.RepoInfo(s, user) 126 126 127 - forkInfo, err := getForkInfo(repoInfo, s, f, w, user) 128 - if err != nil { 129 - log.Printf("Failed to fetch fork information: %v", err) 130 - return 127 + var forkInfo *types.ForkInfo 128 + if user != nil && user.Did == repoInfo.OwnerDid { 129 + forkInfo, err = getForkInfo(repoInfo, s, f, w, user) 130 + if err != nil { 131 + log.Printf("Failed to fetch fork information: %v", err) 132 + return 133 + } 131 134 } 132 135 133 136 s.pages.RepoIndexPage(w, pages.RepoIndexParams{ ··· 137 140 RepoIndexResponse: result, 138 141 CommitsTrunc: commitsTrunc, 139 142 TagsTrunc: tagsTrunc, 140 - ForkInfo: *forkInfo, 143 + ForkInfo: forkInfo, 141 144 BranchesTrunc: branchesTrunc, 142 145 EmailToDidOrHandle: EmailToDidOrHandle(s, emails), 143 146 })