mirror of
https://github.com/kubevela/kubevela.git
synced 2026-08-27 16:17:34 +00:00
Feat: support to query the alias of the project member
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
This commit is contained in:
@@ -383,9 +383,28 @@ func (p *projectServiceImpl) ListProjectUser(ctx context.Context, projectName st
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
var usernames []string
|
||||
for _, entity := range entities {
|
||||
usernames = append(usernames, entity.(*model.ProjectUser).Username)
|
||||
}
|
||||
var userMap = make(map[string]*model.User, len(usernames))
|
||||
if len(usernames) > 0 {
|
||||
users, _ := p.Store.List(ctx, &model.User{}, &datastore.ListOptions{
|
||||
FilterOptions: datastore.FilterOptions{
|
||||
In: []datastore.InQueryOption{
|
||||
{Key: "name", Values: usernames},
|
||||
},
|
||||
},
|
||||
})
|
||||
for i := range users {
|
||||
user := users[i].(*model.User)
|
||||
userMap[user.Name] = user
|
||||
}
|
||||
}
|
||||
var res apisv1.ListProjectUsersResponse
|
||||
for _, entity := range entities {
|
||||
res.Users = append(res.Users, ConvertProjectUserModel2Base(entity.(*model.ProjectUser)))
|
||||
projectUser := entity.(*model.ProjectUser)
|
||||
res.Users = append(res.Users, ConvertProjectUserModel2Base(projectUser, userMap[projectUser.Username]))
|
||||
}
|
||||
count, err := p.Store.Count(ctx, &projectUser, nil)
|
||||
if err != nil {
|
||||
@@ -400,7 +419,7 @@ func (p *projectServiceImpl) AddProjectUser(ctx context.Context, projectName str
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
_, err = p.UserService.GetUser(ctx, req.UserName)
|
||||
user, err := p.UserService.GetUser(ctx, req.UserName)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -428,7 +447,7 @@ func (p *projectServiceImpl) AddProjectUser(ctx context.Context, projectName str
|
||||
}
|
||||
return nil, err
|
||||
}
|
||||
return ConvertProjectUserModel2Base(&projectUser), nil
|
||||
return ConvertProjectUserModel2Base(&projectUser, user), nil
|
||||
}
|
||||
|
||||
func (p *projectServiceImpl) DeleteProjectUser(ctx context.Context, projectName string, userName string) error {
|
||||
@@ -454,6 +473,10 @@ func (p *projectServiceImpl) UpdateProjectUser(ctx context.Context, projectName
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
user, err := p.UserService.GetUser(ctx, userName)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
// check user roles
|
||||
for _, role := range req.UserRoles {
|
||||
var projectUser = model.Role{
|
||||
@@ -481,7 +504,7 @@ func (p *projectServiceImpl) UpdateProjectUser(ctx context.Context, projectName
|
||||
if err := p.Store.Put(ctx, &projectUser); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return ConvertProjectUserModel2Base(&projectUser), nil
|
||||
return ConvertProjectUserModel2Base(&projectUser, user), nil
|
||||
}
|
||||
|
||||
func (p *projectServiceImpl) GetConfigs(ctx context.Context, projectName, configType string) ([]*apisv1.Config, error) {
|
||||
@@ -592,13 +615,16 @@ func ConvertProjectModel2Base(project *model.Project, owner *model.User) *apisv1
|
||||
}
|
||||
|
||||
// ConvertProjectUserModel2Base convert project user model to base struct
|
||||
func ConvertProjectUserModel2Base(user *model.ProjectUser) *apisv1.ProjectUserBase {
|
||||
func ConvertProjectUserModel2Base(user *model.ProjectUser, userModel *model.User) *apisv1.ProjectUserBase {
|
||||
base := &apisv1.ProjectUserBase{
|
||||
UserName: user.Username,
|
||||
UserRoles: user.UserRoles,
|
||||
CreateTime: user.CreateTime,
|
||||
UpdateTime: user.UpdateTime,
|
||||
}
|
||||
if userModel != nil {
|
||||
base.UserAlias = userModel.Alias
|
||||
}
|
||||
return base
|
||||
}
|
||||
|
||||
|
||||
@@ -227,6 +227,11 @@ var _ = Describe("Test project service functions", func() {
|
||||
UserRoles: []string{"project-admin"},
|
||||
})
|
||||
Expect(err).Should(BeNil())
|
||||
|
||||
users, err := projectService.ListProjectUser(context.TODO(), "test-project", 0, 0)
|
||||
Expect(err).Should(BeNil())
|
||||
Expect(len(users.Users)).Should(Equal(1))
|
||||
Expect(users.Users[0].UserAlias).Should(Equal("Administrator"))
|
||||
})
|
||||
|
||||
It("Test Update project user function", func() {
|
||||
|
||||
@@ -1275,6 +1275,7 @@ type DetailUserResponse struct {
|
||||
// ProjectUserBase project user base
|
||||
type ProjectUserBase struct {
|
||||
UserName string `json:"name"`
|
||||
UserAlias string `json:"alias"`
|
||||
UserRoles []string `json:"userRoles"`
|
||||
CreateTime time.Time `json:"createTime"`
|
||||
UpdateTime time.Time `json:"updateTime"`
|
||||
|
||||
Reference in New Issue
Block a user