func Dashboard(ctx *middleware.Context) { ctx.Data["Title"] = "Dashboard" ctx.Data["PageIsUserDashboard"] = true if err := ctx.User.GetOrganizations(); err != nil { ctx.Handle(500, "home.Dashboard(GetOrganizations)", err) return } ctx.Data["Orgs"] = ctx.User.Orgs ctx.Data["ContextUser"] = ctx.User var err error ctx.Data["MyRepos"], err = models.GetRepositories(ctx.User.Id, true) if err != nil { ctx.Handle(500, "home.Dashboard(GetRepositories)", err) return } ctx.Data["CollaborativeRepos"], err = models.GetCollaborativeRepos(ctx.User.Name) if err != nil { ctx.Handle(500, "home.Dashboard(GetCollaborativeRepos)", err) return } actions, err := models.GetFeeds(ctx.User.Id, 0, false) if err != nil { ctx.Handle(500, "home.Dashboard(GetFeeds)", err) return } // Check access of private repositories. feeds := make([]*models.Action, 0, len(actions)) for _, act := range actions { if act.IsPrivate { if has, _ := models.HasAccess(ctx.User.Name, act.RepoUserName+"/"+act.RepoName, models.READABLE); !has { continue } } feeds = append(feeds, act) } ctx.Data["Feeds"] = feeds ctx.HTML(200, DASHBOARD) }
func Dashboard(ctx *middleware.Context) { ctx.Data["Title"] = "Dashboard" ctx.Data["PageIsUserDashboard"] = true repos, err := models.GetRepositories(&models.User{Id: ctx.User.Id}, true) if err != nil { ctx.Handle(500, "home.Dashboard(GetRepositories)", err) return } ctx.Data["MyRepos"] = repos collaRepos, err := models.GetCollaborativeRepos(ctx.User.Name) if err != nil { ctx.Handle(500, "home.Dashboard(GetCollaborativeRepos)", err) return } ctx.Data["CollaborativeRepos"] = collaRepos actions, err := models.GetFeeds(ctx.User.Id, 0, false) if err != nil { ctx.Handle(500, "home.Dashboard", err) return } feeds := make([]*models.Action, 0, len(actions)) for _, act := range actions { if act.IsPrivate { if has, _ := models.HasAccess(ctx.User.Name, act.RepoUserName+"/"+act.RepoName, models.AU_READABLE); !has { continue } } feeds = append(feeds, act) } ctx.Data["Feeds"] = feeds ctx.HTML(200, "user/dashboard") }
func Dashboard(ctx *middleware.Context) { ctx.Data["Title"] = ctx.Tr("dashboard") ctx.Data["PageIsDashboard"] = true ctx.Data["PageIsNews"] = true var ctxUser *models.User // Check context type. orgName := ctx.Params(":org") if len(orgName) > 0 { // Organization. org, err := models.GetUserByName(orgName) if err != nil { if err == models.ErrUserNotExist { ctx.Handle(404, "GetUserByName", err) } else { ctx.Handle(500, "GetUserByName", err) } return } ctxUser = org } else { // Normal user. ctxUser = ctx.User collaborates, err := models.GetCollaborativeRepos(ctxUser.Name) if err != nil { ctx.Handle(500, "GetCollaborativeRepos", err) return } ctx.Data["CollaborateCount"] = len(collaborates) ctx.Data["CollaborativeRepos"] = collaborates } ctx.Data["ContextUser"] = ctxUser if err := ctx.User.GetOrganizations(); err != nil { ctx.Handle(500, "GetOrganizations", err) return } ctx.Data["Orgs"] = ctx.User.Orgs repos, err := models.GetRepositories(ctxUser.Id, true) if err != nil { ctx.Handle(500, "GetRepositories", err) return } ctx.Data["Repos"] = repos // Get mirror repositories. mirrors := make([]*models.Repository, 0, len(repos)/2) for _, repo := range repos { if repo.IsMirror { if err = repo.GetMirror(); err != nil { ctx.Handle(500, "GetMirror: "+repo.Name, err) return } mirrors = append(mirrors, repo) } } ctx.Data["MirrorCount"] = len(mirrors) ctx.Data["Mirrors"] = mirrors // Get feeds. actions, err := models.GetFeeds(ctxUser.Id, 0, false) if err != nil { ctx.Handle(500, "GetFeeds", err) return } // Check access of private repositories. feeds := make([]*models.Action, 0, len(actions)) for _, act := range actions { if act.IsPrivate { if has, _ := models.HasAccess(ctxUser.Name, act.RepoUserName+"/"+act.RepoName, models.READABLE); !has { continue } } feeds = append(feeds, act) } ctx.Data["Feeds"] = feeds ctx.HTML(200, DASHBOARD) }