mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-24 16:03:43 +08:00
fix: user project lists with metadata (#14053)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
This commit is contained in:
@@ -37,6 +37,12 @@ type SFetchDomainObject struct {
|
||||
DomainId string `json:"domain_id"`
|
||||
}
|
||||
|
||||
type SFetchDomainObjectWithMetadata struct {
|
||||
SFetchDomainObject
|
||||
|
||||
Metadata map[string]string `json:"metadata"`
|
||||
}
|
||||
|
||||
type SRoleAssignment struct {
|
||||
Scope struct {
|
||||
Domain SIdentityObject `json:"domain"`
|
||||
|
||||
@@ -39,5 +39,5 @@ type UserDetails struct {
|
||||
|
||||
ExternalResourceInfo
|
||||
|
||||
Projects []SFetchDomainObject `json:"projects"`
|
||||
Projects []SFetchDomainObjectWithMetadata `json:"projects"`
|
||||
}
|
||||
|
||||
@@ -439,6 +439,9 @@ func (manager *SProjectManager) FetchUserProjects(userId string) ([]SProjectExte
|
||||
if err != nil && err != sql.ErrNoRows {
|
||||
return nil, errors.Wrap(err, "query.All")
|
||||
}
|
||||
for i := range ret {
|
||||
ret[i].SetModelManager(manager, &ret[i])
|
||||
}
|
||||
return ret, nil
|
||||
}
|
||||
|
||||
|
||||
@@ -606,7 +606,7 @@ func (manager *SUserManager) FetchCustomizeColumns(
|
||||
EnabledIdentityBaseResourceDetails: identRows[i],
|
||||
}
|
||||
userIds[i] = objs[i].(*SUser).Id
|
||||
rows[i] = userExtra(objs[i].(*SUser), rows[i])
|
||||
rows[i] = userExtra(ctx, userCred, objs[i].(*SUser), rows[i])
|
||||
}
|
||||
|
||||
idpsMaps, err := fetchIdmappings(userIds, api.IdMappingEntityUser)
|
||||
@@ -630,7 +630,7 @@ func (manager *SUserManager) FetchCustomizeColumns(
|
||||
return rows
|
||||
}
|
||||
|
||||
func userExtra(user *SUser, out api.UserDetails) api.UserDetails {
|
||||
func userExtra(ctx context.Context, userCred mcclient.TokenCredential, user *SUser, out api.UserDetails) api.UserDetails {
|
||||
out.GroupCount, _ = user.GetGroupCount()
|
||||
out.ProjectCount, _ = user.GetProjectCount()
|
||||
out.CredentialCount, _ = user.GetCredentialCount()
|
||||
@@ -665,12 +665,13 @@ func userExtra(user *SUser, out api.UserDetails) api.UserDetails {
|
||||
}
|
||||
|
||||
projects, _ := ProjectManager.FetchUserProjects(user.Id)
|
||||
out.Projects = make([]api.SFetchDomainObject, len(projects))
|
||||
out.Projects = make([]api.SFetchDomainObjectWithMetadata, len(projects))
|
||||
for i, proj := range projects {
|
||||
out.Projects[i].Id = proj.Id
|
||||
out.Projects[i].Name = proj.Name
|
||||
out.Projects[i].Domain = proj.DomainName
|
||||
out.Projects[i].DomainId = proj.DomainId
|
||||
out.Projects[i].Metadata, _ = proj.GetAllMetadata(ctx, userCred)
|
||||
}
|
||||
|
||||
return out
|
||||
|
||||
Reference in New Issue
Block a user