Skip to content

Commit abe592c

Browse files
committed
Fix repository list permissions
1 parent 837526a commit abe592c

File tree

1 file changed

+14
-3
lines changed

1 file changed

+14
-3
lines changed

routers/web/repo/issue.go

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2077,13 +2077,24 @@ func ViewIssue(ctx *context.Context) {
20772077
}
20782078

20792079
if ctx.IsSigned {
2080-
forkedRepos, err := repo_model.FindUserOrgForks(ctx, ctx.Repo.Repository.ID, ctx.Doer.ID)
2080+
forkedRepos, err := repo_model.GetForksByUserAndOrgs(ctx, ctx.Doer, ctx.Repo.Repository)
20812081
if err != nil {
2082-
ctx.ServerError("FindUserOrgForks", err)
2082+
ctx.ServerError("GetForksByUserAndOrgs", err)
20832083
return
20842084
}
2085+
allowedRepos := make([]*repo_model.Repository, 0, len(forkedRepos)+1)
2086+
for _, repo := range append(forkedRepos, ctx.Repo.Repository) {
2087+
perm, err := access_model.GetUserRepoPermission(ctx, repo, ctx.Doer)
2088+
if err != nil {
2089+
ctx.ServerError("GetUserRepoPermission", err)
2090+
return
2091+
}
2092+
if perm.CanWrite(unit.TypeCode) {
2093+
allowedRepos = append(allowedRepos, repo)
2094+
}
2095+
}
20852096

2086-
ctx.Data["AllowedRepos"] = append(forkedRepos, ctx.Repo.Repository)
2097+
ctx.Data["AllowedRepos"] = allowedRepos
20872098

20882099
devLinks, err := issue_service.FindIssueDevLinksByIssue(ctx, issue)
20892100
if err != nil {

0 commit comments

Comments
 (0)