From e43de0db4c4ed883a7b6d3500e796c1ed77d0397 Mon Sep 17 00:00:00 2001 From: 6543 <6543@obermui.de> Date: Tue, 3 Dec 2019 08:26:02 +0100 Subject: [PATCH] Fix Dashboard Issues/PR list (#9235) * fix it * revert suggestion part --- routers/user/home.go | 42 +++++++++++++++++++++++++----------------- 1 file changed, 25 insertions(+), 17 deletions(-) diff --git a/routers/user/home.go b/routers/user/home.go index e0d90dc6e2..8465216bcf 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 { @@ -295,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) + } } }