Merge pull request #10258 from reasonerjt/stastic-api-group-member-1.10

Stastics API should handle group members - cherrypick to 1.10
This commit is contained in:
Wenkai Yin(尹文开) 2019-12-16 15:46:51 +08:00 committed by GitHub
commit ae034185eb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -67,7 +67,7 @@ func (s *StatisticAPI) Get() {
if len(pubProjs) == 0 { if len(pubProjs) == 0 {
statistic[PubRC] = 0 statistic[PubRC] = 0
} else { } else {
ids := []int64{} ids := make([]int64, 0)
for _, p := range pubProjs { for _, p := range pubProjs {
ids = append(ids, p.ProjectID) ids = append(ids, p.ProjectID)
} }
@ -101,30 +101,26 @@ func (s *StatisticAPI) Get() {
statistic[TRC] = n statistic[TRC] = n
statistic[PriRC] = n - statistic[PubRC] statistic[PriRC] = n - statistic[PubRC]
} else { } else {
value := false // including the public ones
result, err := s.ProjectMgr.List(&models.ProjectQueryParam{ myProjects, err := s.SecurityCtx.GetMyProjects()
Public: &value, privProjectIDs := make([]int64, 0)
Member: &models.MemberQuery{
Name: s.username,
},
})
if err != nil { if err != nil {
s.ParseAndHandleError(fmt.Sprintf( s.ParseAndHandleError(fmt.Sprintf(
"failed to get projects of user %s", s.username), err) "failed to get projects of user %s", s.username), err)
return return
} }
for _, p := range myProjects {
statistic[PriPC] = result.Total if !p.IsPublic() {
if result.Total == 0 { privProjectIDs = append(privProjectIDs, p.ProjectID)
statistic[PriRC] = 0 }
} else {
ids := []int64{}
for _, p := range result.Projects {
ids = append(ids, p.ProjectID)
} }
statistic[PriPC] = int64(len(privProjectIDs))
if statistic[PriPC] == 0 {
statistic[PriRC] = 0
} else {
n, err := dao.GetTotalOfRepositories(&models.RepositoryQuery{ n, err := dao.GetTotalOfRepositories(&models.RepositoryQuery{
ProjectIDs: ids, ProjectIDs: privProjectIDs,
}) })
if err != nil { if err != nil {
s.SendInternalServerError(fmt.Errorf( s.SendInternalServerError(fmt.Errorf(