From 419cf8dfc32a917db0680d8b32d6e5b714bbd354 Mon Sep 17 00:00:00 2001 From: Wenkai Yin Date: Thu, 22 Jun 2017 17:22:58 +0800 Subject: [PATCH] fix bug: can't show the role of member --- src/common/dao/projectmember.go | 10 ++++++---- src/common/models/member.go | 23 +++++++++++++++++++++++ src/common/models/project.go | 14 +++++++------- src/ui/api/statistic.go | 2 +- src/ui/projectmanager/db/pm.go | 2 +- 5 files changed, 38 insertions(+), 13 deletions(-) create mode 100644 src/common/models/member.go diff --git a/src/common/dao/projectmember.go b/src/common/dao/projectmember.go index b49ec2d6a..4e8678493 100644 --- a/src/common/dao/projectmember.go +++ b/src/common/dao/projectmember.go @@ -54,9 +54,8 @@ func DeleteProjectMember(projectID int64, userID int) error { } // GetUserByProject gets all members of the project. -func GetUserByProject(projectID int64, queryUser models.User) ([]models.User, error) { +func GetUserByProject(projectID int64, queryUser models.User) ([]*models.Member, error) { o := GetOrmer() - u := []models.User{} sql := `select u.user_id, u.username, u.creation_time, u.update_time, r.name as rolename, r.role_id as role from user u @@ -74,6 +73,9 @@ func GetUserByProject(projectID int64, queryUser models.User) ([]models.User, er queryParam = append(queryParam, "%"+escape(queryUser.Username)+"%") } sql += ` order by u.username ` - _, err := o.Raw(sql, queryParam).QueryRows(&u) - return u, err + + members := []*models.Member{} + _, err := o.Raw(sql, queryParam).QueryRows(&members) + + return members, err } diff --git a/src/common/models/member.go b/src/common/models/member.go new file mode 100644 index 000000000..31686b020 --- /dev/null +++ b/src/common/models/member.go @@ -0,0 +1,23 @@ +// Copyright (c) 2017 VMware, Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package models + +// Member holds the details of a member. +type Member struct { + ID int `orm:"pk;column(user_id)" json:"user_id"` + Username string `json:"username"` + Rolename string `json:"role_name"` + Role int `json:"role_id"` +} diff --git a/src/common/models/project.go b/src/common/models/project.go index c5ab7e1e5..fd227c6b9 100644 --- a/src/common/models/project.go +++ b/src/common/models/project.go @@ -73,15 +73,15 @@ func (ps *ProjectSorter) Swap(i, j int) { // List projects which user1 is member of: query := &QueryParam{Member:&Member{Name:"user1"}} // List projects which user1 is the project admin : query := &QueryParam{Memeber:&Member{Name:"user1",Role:1}} type ProjectQueryParam struct { - Name string // the name of project - Owner string // the username of project owner - Public *bool // the project is public or not, can be ture, false and nil - Member *Member // the member of project - Pagination *Pagination // pagination information + Name string // the name of project + Owner string // the username of project owner + Public *bool // the project is public or not, can be ture, false and nil + Member *MemberQuery // the member of project + Pagination *Pagination // pagination information } -// Member fitler by member's username and role -type Member struct { +// MemberQuery fitler by member's username and role +type MemberQuery struct { Name string // the username of member Role int // the role of the member has to the project } diff --git a/src/ui/api/statistic.go b/src/ui/api/statistic.go index 34ddac3fb..b0e6cc16d 100644 --- a/src/ui/api/statistic.go +++ b/src/ui/api/statistic.go @@ -95,7 +95,7 @@ func (s *StatisticAPI) Get() { statistic[TRC] = n } else { projects, err := s.ProjectMgr.GetAll(&models.ProjectQueryParam{ - Member: &models.Member{ + Member: &models.MemberQuery{ Name: s.username, }, }) diff --git a/src/ui/projectmanager/db/pm.go b/src/ui/projectmanager/db/pm.go index a44f6a1ba..19a1dc6e7 100644 --- a/src/ui/projectmanager/db/pm.go +++ b/src/ui/projectmanager/db/pm.go @@ -116,7 +116,7 @@ func (p *ProjectManager) GetPublic() ([]*models.Project, error) { func (p *ProjectManager) GetByMember(username string) ( []*models.Project, error) { return p.GetAll(&models.ProjectQueryParam{ - Member: &models.Member{ + Member: &models.MemberQuery{ Name: username, }, })