fix issue on listing robot accounts

Update the query FuzzyMatch when to list robot accounts per project

Signed-off-by: wang yan <wangyan@vmware.com>
This commit is contained in:
wang yan 2020-02-04 18:37:42 +08:00
parent 5cf0481b51
commit a53df4863d
2 changed files with 16 additions and 1 deletions

View File

@ -86,6 +86,15 @@ func (s *ControllerTestSuite) TestRobotAccount() {
r2, _ := s.ctr.CreateRobotAccount(robot2)
s.robotID = r2.ID
robot3 := &model.RobotCreate{
Name: "robot3",
Description: "TestCreateRobotAccount",
ExpiresAt: expiresAt,
ProjectID: int64(11),
Access: policies,
}
r3, _ := s.ctr.CreateRobotAccount(robot3)
keywords := make(map[string]interface{})
keywords["ProjectID"] = int64(1)
query := &q.Query{
@ -98,6 +107,8 @@ func (s *ControllerTestSuite) TestRobotAccount() {
err = s.ctr.DeleteRobotAccount(robot.ID)
s.require.Nil(err)
err = s.ctr.DeleteRobotAccount(r3.ID)
s.require.Nil(err)
robots, err = s.ctr.ListRobotAccount(query)
s.require.Equal(len(robots), 1)

View File

@ -73,7 +73,11 @@ func (r *robotAccountDao) ListRobotAccounts(query *q.Query) ([]*model.Robot, err
if query != nil {
if len(query.Keywords) > 0 {
for k, v := range query.Keywords {
qt = qt.Filter(fmt.Sprintf("%s__icontains", k), v)
if k == "ProjectID" {
qt = qt.Filter("ProjectID", v)
} else {
qt = qt.Filter(fmt.Sprintf("%s__icontains", k), v)
}
}
}