parent
							
								
									59f25587e8
								
							
						
					
					
						commit
						889dea8fc1
					
				
					 3 changed files with 4 additions and 56 deletions
				
			
		|  | @ -114,11 +114,12 @@ func doCheckOrgCounts(username string, orgCounts map[string]int, strict bool, ca | |||
| 			Name: username, | ||||
| 		}).(*models.User) | ||||
| 
 | ||||
| 		user.GetOrganizations(&models.SearchOrganizationsOptions{All: true}) | ||||
| 		orgs, err := models.GetOrgsByUserID(user.ID, true) | ||||
| 		assert.NoError(t, err) | ||||
| 
 | ||||
| 		calcOrgCounts := map[string]int{} | ||||
| 
 | ||||
| 		for _, org := range user.Orgs { | ||||
| 		for _, org := range orgs { | ||||
| 			calcOrgCounts[org.LowerName] = org.NumRepos | ||||
| 			count, ok := canonicalCounts[org.LowerName] | ||||
| 			if ok { | ||||
|  |  | |||
|  | @ -112,7 +112,6 @@ type User struct { | |||
| 	LoginName   string | ||||
| 	Type        UserType | ||||
| 	OwnedOrgs   []*User       `xorm:"-"` | ||||
| 	Orgs        []*User       `xorm:"-"` | ||||
| 	Repos       []*Repository `xorm:"-"` | ||||
| 	Location    string | ||||
| 	Website     string | ||||
|  | @ -603,58 +602,6 @@ func (u *User) GetOwnedOrganizations() (err error) { | |||
| 	return err | ||||
| } | ||||
| 
 | ||||
| // GetOrganizations returns paginated organizations that user belongs to.
 | ||||
| // TODO: does not respect All and show orgs you privately participate
 | ||||
| func (u *User) GetOrganizations(opts *SearchOrganizationsOptions) error { | ||||
| 	sess := x.NewSession() | ||||
| 	defer sess.Close() | ||||
| 
 | ||||
| 	schema, err := x.TableInfo(new(User)) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	groupByCols := &strings.Builder{} | ||||
| 	for _, col := range schema.Columns() { | ||||
| 		fmt.Fprintf(groupByCols, "`%s`.%s,", schema.Name, col.Name) | ||||
| 	} | ||||
| 	groupByStr := groupByCols.String() | ||||
| 	groupByStr = groupByStr[0 : len(groupByStr)-1] | ||||
| 
 | ||||
| 	sess.Select("`user`.*, count(repo_id) as org_count"). | ||||
| 		Table("user"). | ||||
| 		Join("INNER", "org_user", "`org_user`.org_id=`user`.id"). | ||||
| 		Join("LEFT", builder. | ||||
| 			Select("id as repo_id, owner_id as repo_owner_id"). | ||||
| 			From("repository"). | ||||
| 			Where(accessibleRepositoryCondition(u)), "`repository`.repo_owner_id = `org_user`.org_id"). | ||||
| 		And("`org_user`.uid=?", u.ID). | ||||
| 		GroupBy(groupByStr) | ||||
| 	if opts.PageSize != 0 { | ||||
| 		sess = opts.setSessionPagination(sess) | ||||
| 	} | ||||
| 	type OrgCount struct { | ||||
| 		User     `xorm:"extends"` | ||||
| 		OrgCount int | ||||
| 	} | ||||
| 	orgCounts := make([]*OrgCount, 0, 10) | ||||
| 
 | ||||
| 	if err := sess. | ||||
| 		Asc("`user`.name"). | ||||
| 		Find(&orgCounts); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
| 	orgs := make([]*User, len(orgCounts)) | ||||
| 	for i, orgCount := range orgCounts { | ||||
| 		orgCount.User.NumRepos = orgCount.OrgCount | ||||
| 		orgs[i] = &orgCount.User | ||||
| 	} | ||||
| 
 | ||||
| 	u.Orgs = orgs | ||||
| 
 | ||||
| 	return nil | ||||
| } | ||||
| 
 | ||||
| // DisplayName returns full name if it's not empty,
 | ||||
| // returns username otherwise.
 | ||||
| func (u *User) DisplayName() string { | ||||
|  |  | |||
|  | @ -9,7 +9,7 @@ | |||
| 	:more-repos-link="'{{.ContextUser.HomeLink}}'" | ||||
| 	{{if not .ContextUser.IsOrganization}} | ||||
| 	:organizations="[ | ||||
| 	{{range .ContextUser.Orgs}} | ||||
| 	{{range .Orgs}} | ||||
| 	{name: '{{.Name}}', num_repos: '{{.NumRepos}}'}, | ||||
| 	{{end}} | ||||
| 	]" | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue