From 50966831a65022d6b1bf0d654fb372e3ef41179c Mon Sep 17 00:00:00 2001 From: 6543 <6543@obermui.de> Date: Tue, 3 Dec 2019 03:17:11 +0100 Subject: [PATCH 1/2] fix it --- routers/user/home.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/routers/user/home.go b/routers/user/home.go index 216f91e4dbade..d9776c487d3f5 100644 --- a/routers/user/home.go +++ b/routers/user/home.go @@ -285,7 +285,9 @@ func Issues(ctx *context.Context) { } opts.LabelIDs = labelIDs - opts.RepoIDs = repoIDs + if len(repoIDs) > 0 { + opts.RepoIDs = repoIDs + } issues, err := models.Issues(opts) if err != nil { From 1ae0d8d72026447cf5ca5f513697bb17bcb72db5 Mon Sep 17 00:00:00 2001 From: 6543 <6543@obermui.de> Date: Tue, 3 Dec 2019 04:04:30 +0100 Subject: [PATCH 2/2] revert suggestion part --- routers/user/home.go | 38 ++++++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/routers/user/home.go b/routers/user/home.go index d9776c487d3f5..fa22bb90e6c16 100644 --- a/routers/user/home.go +++ b/routers/user/home.go @@ -297,23 +297,29 @@ func Issues(ctx *context.Context) { showReposMap := make(map[int64]*models.Repository, len(counts)) for repoID := range counts { - showReposMap[repoID], err = models.GetRepositoryByID(repoID) - if models.IsErrRepoNotExist(err) { - ctx.NotFound("GetRepositoryByID", err) - return - } else if err != nil { - ctx.ServerError("GetRepositoryByID", fmt.Errorf("[%d]%v", repoID, err)) - return - } + if repoID > 0 { + if _, ok := showReposMap[repoID]; !ok { + repo, err := models.GetRepositoryByID(repoID) + if models.IsErrRepoNotExist(err) { + ctx.NotFound("GetRepositoryByID", err) + return + } else if err != nil { + ctx.ServerError("GetRepositoryByID", fmt.Errorf("[%d]%v", repoID, err)) + return + } + showReposMap[repoID] = repo + } + repo := showReposMap[repoID] - // Check if user has access to given repository. - perm, err := models.GetUserRepoPermission(showReposMap[repoID], ctxUser) - if err != nil { - ctx.ServerError("GetUserRepoPermission", fmt.Errorf("[%d]%v", repoID, err)) - return - } - if !perm.CanRead(models.UnitTypeIssues) { - log.Error("User created Issues in Repository which they no longer have access to: [%d]", repoID) + // Check if user has access to given repository. + perm, err := models.GetUserRepoPermission(repo, ctxUser) + if err != nil { + ctx.ServerError("GetUserRepoPermission", fmt.Errorf("[%d]%v", repoID, err)) + return + } + if !perm.CanRead(models.UnitTypeIssues) { + log.Error("User created Issues in Repository which they no longer have access to: [%d]", repoID) + } } }