mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-26 12:27:06 +00:00 
			
		
		
		
	| @@ -114,11 +114,12 @@ func doCheckOrgCounts(username string, orgCounts map[string]int, strict bool, ca | |||||||
| 			Name: username, | 			Name: username, | ||||||
| 		}).(*models.User) | 		}).(*models.User) | ||||||
|  |  | ||||||
| 		user.GetOrganizations(&models.SearchOrganizationsOptions{All: true}) | 		orgs, err := models.GetOrgsByUserID(user.ID, true) | ||||||
|  | 		assert.NoError(t, err) | ||||||
|  |  | ||||||
| 		calcOrgCounts := map[string]int{} | 		calcOrgCounts := map[string]int{} | ||||||
|  |  | ||||||
| 		for _, org := range user.Orgs { | 		for _, org := range orgs { | ||||||
| 			calcOrgCounts[org.LowerName] = org.NumRepos | 			calcOrgCounts[org.LowerName] = org.NumRepos | ||||||
| 			count, ok := canonicalCounts[org.LowerName] | 			count, ok := canonicalCounts[org.LowerName] | ||||||
| 			if ok { | 			if ok { | ||||||
|   | |||||||
| @@ -112,7 +112,6 @@ type User struct { | |||||||
| 	LoginName   string | 	LoginName   string | ||||||
| 	Type        UserType | 	Type        UserType | ||||||
| 	OwnedOrgs   []*User       `xorm:"-"` | 	OwnedOrgs   []*User       `xorm:"-"` | ||||||
| 	Orgs        []*User       `xorm:"-"` |  | ||||||
| 	Repos       []*Repository `xorm:"-"` | 	Repos       []*Repository `xorm:"-"` | ||||||
| 	Location    string | 	Location    string | ||||||
| 	Website     string | 	Website     string | ||||||
| @@ -603,58 +602,6 @@ func (u *User) GetOwnedOrganizations() (err error) { | |||||||
| 	return err | 	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, | // DisplayName returns full name if it's not empty, | ||||||
| // returns username otherwise. | // returns username otherwise. | ||||||
| func (u *User) DisplayName() string { | func (u *User) DisplayName() string { | ||||||
|   | |||||||
| @@ -9,7 +9,7 @@ | |||||||
| 	:more-repos-link="'{{.ContextUser.HomeLink}}'" | 	:more-repos-link="'{{.ContextUser.HomeLink}}'" | ||||||
| 	{{if not .ContextUser.IsOrganization}} | 	{{if not .ContextUser.IsOrganization}} | ||||||
| 	:organizations="[ | 	:organizations="[ | ||||||
| 	{{range .ContextUser.Orgs}} | 	{{range .Orgs}} | ||||||
| 	{name: '{{.Name}}', num_repos: '{{.NumRepos}}'}, | 	{name: '{{.Name}}', num_repos: '{{.NumRepos}}'}, | ||||||
| 	{{end}} | 	{{end}} | ||||||
| 	]" | 	]" | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 6543
					6543