From 0271efd3f76cced38b4b3bde6b80ebbc9910c1fd Mon Sep 17 00:00:00 2001 From: Wang Yan Date: Mon, 4 Jan 2021 10:24:31 +0800 Subject: [PATCH] enable visible when to list/create robot (#13840) 1, enable the visible attribute when to create/list robots 2, rename package name from robot2 to robot Signed-off-by: Wang Yan --- src/common/security/robot/context.go | 2 +- src/common/security/robot/context_test.go | 2 +- src/controller/robot/controller.go | 5 +++-- src/controller/robot/controller_test.go | 18 +++++++++--------- src/controller/robot/model.go | 2 +- src/controller/robot/model_test.go | 2 +- src/controller/scan/base_controller.go | 2 +- src/controller/scan/base_controller_test.go | 2 +- src/pkg/{robot2 => robot}/dao/dao.go | 2 +- src/pkg/{robot2 => robot}/dao/dao_test.go | 19 ++++++++++++++++++- src/pkg/{robot2 => robot}/manager.go | 6 +++--- src/pkg/{robot2 => robot}/manager_test.go | 6 +++--- src/pkg/{robot2 => robot}/model/model.go | 0 src/pkg/scan/job.go | 2 +- src/pkg/scan/job_test.go | 2 +- src/server/middleware/security/robot2.go | 2 +- src/server/v2.0/handler/project.go | 6 +++--- src/server/v2.0/handler/robot.go | 4 +++- src/server/v2.0/handler/robotV1.go | 6 ++++-- src/testing/pkg/pkg.go | 4 ++-- src/testing/pkg/{robot2 => robot}/dao/dao.go | 2 +- src/testing/pkg/{robot2 => robot}/manager.go | 4 ++-- 22 files changed, 61 insertions(+), 39 deletions(-) rename src/pkg/{robot2 => robot}/dao/dao.go (98%) rename src/pkg/{robot2 => robot}/dao/dao_test.go (88%) rename src/pkg/{robot2 => robot}/manager.go (94%) rename src/pkg/{robot2 => robot}/manager_test.go (93%) rename src/pkg/{robot2 => robot}/model/model.go (100%) rename src/testing/pkg/{robot2 => robot}/dao/dao.go (98%) rename src/testing/pkg/{robot2 => robot}/manager.go (97%) diff --git a/src/common/security/robot/context.go b/src/common/security/robot/context.go index 6896edf4b..8fc822dae 100644 --- a/src/common/security/robot/context.go +++ b/src/common/security/robot/context.go @@ -23,7 +23,7 @@ import ( "github.com/goharbor/harbor/src/controller/project" "github.com/goharbor/harbor/src/pkg/permission/evaluator" "github.com/goharbor/harbor/src/pkg/permission/types" - "github.com/goharbor/harbor/src/pkg/robot2/model" + "github.com/goharbor/harbor/src/pkg/robot/model" ) // SecurityContext implements security.Context interface based on database diff --git a/src/common/security/robot/context_test.go b/src/common/security/robot/context_test.go index 3b32543fc..097c12adc 100644 --- a/src/common/security/robot/context_test.go +++ b/src/common/security/robot/context_test.go @@ -23,7 +23,7 @@ import ( "github.com/goharbor/harbor/src/common/models" "github.com/goharbor/harbor/src/common/rbac" "github.com/goharbor/harbor/src/pkg/permission/types" - "github.com/goharbor/harbor/src/pkg/robot2/model" + "github.com/goharbor/harbor/src/pkg/robot/model" projecttesting "github.com/goharbor/harbor/src/testing/controller/project" "github.com/goharbor/harbor/src/testing/mock" "github.com/stretchr/testify/assert" diff --git a/src/controller/robot/controller.go b/src/controller/robot/controller.go index e4d340176..b5f9fafe3 100644 --- a/src/controller/robot/controller.go +++ b/src/controller/robot/controller.go @@ -13,8 +13,8 @@ import ( "github.com/goharbor/harbor/src/pkg/project" "github.com/goharbor/harbor/src/pkg/rbac" rbac_model "github.com/goharbor/harbor/src/pkg/rbac/model" - robot "github.com/goharbor/harbor/src/pkg/robot2" - "github.com/goharbor/harbor/src/pkg/robot2/model" + robot "github.com/goharbor/harbor/src/pkg/robot" + "github.com/goharbor/harbor/src/pkg/robot/model" "time" ) @@ -108,6 +108,7 @@ func (d *controller) Create(ctx context.Context, r *Robot) (int64, string, error Secret: secret, Duration: r.Duration, Salt: salt, + Visible: r.Visible, }) if err != nil { return 0, "", err diff --git a/src/controller/robot/controller_test.go b/src/controller/robot/controller_test.go index 57ed2c5e6..e49205736 100644 --- a/src/controller/robot/controller_test.go +++ b/src/controller/robot/controller_test.go @@ -11,11 +11,11 @@ import ( "github.com/goharbor/harbor/src/lib/q" "github.com/goharbor/harbor/src/pkg/permission/types" rbac_model "github.com/goharbor/harbor/src/pkg/rbac/model" - "github.com/goharbor/harbor/src/pkg/robot2/model" + "github.com/goharbor/harbor/src/pkg/robot/model" "github.com/goharbor/harbor/src/testing/mock" "github.com/goharbor/harbor/src/testing/pkg/project" "github.com/goharbor/harbor/src/testing/pkg/rbac" - "github.com/goharbor/harbor/src/testing/pkg/robot2" + "github.com/goharbor/harbor/src/testing/pkg/robot" "github.com/stretchr/testify/suite" "os" "testing" @@ -28,7 +28,7 @@ type ControllerTestSuite struct { func (suite *ControllerTestSuite) TestGet() { projectMgr := &project.Manager{} rbacMgr := &rbac.Manager{} - robotMgr := &robot2.Manager{} + robotMgr := &robot.Manager{} c := controller{robotMgr: robotMgr, rbacMgr: rbacMgr, proMgr: projectMgr} ctx := context.TODO() @@ -70,7 +70,7 @@ func (suite *ControllerTestSuite) TestGet() { func (suite *ControllerTestSuite) TestCount() { projectMgr := &project.Manager{} rbacMgr := &rbac.Manager{} - robotMgr := &robot2.Manager{} + robotMgr := &robot.Manager{} c := controller{robotMgr: robotMgr, rbacMgr: rbacMgr, proMgr: projectMgr} ctx := context.TODO() @@ -96,7 +96,7 @@ func (suite *ControllerTestSuite) TestCreate() { projectMgr := &project.Manager{} rbacMgr := &rbac.Manager{} - robotMgr := &robot2.Manager{} + robotMgr := &robot.Manager{} c := controller{robotMgr: robotMgr, rbacMgr: rbacMgr, proMgr: projectMgr} ctx := context.TODO() @@ -137,7 +137,7 @@ func (suite *ControllerTestSuite) TestCreate() { func (suite *ControllerTestSuite) TestDelete() { projectMgr := &project.Manager{} rbacMgr := &rbac.Manager{} - robotMgr := &robot2.Manager{} + robotMgr := &robot.Manager{} c := controller{robotMgr: robotMgr, rbacMgr: rbacMgr, proMgr: projectMgr} ctx := context.TODO() @@ -152,7 +152,7 @@ func (suite *ControllerTestSuite) TestDelete() { func (suite *ControllerTestSuite) TestUpdate() { projectMgr := &project.Manager{} rbacMgr := &rbac.Manager{} - robotMgr := &robot2.Manager{} + robotMgr := &robot.Manager{} c := controller{robotMgr: robotMgr, rbacMgr: rbacMgr, proMgr: projectMgr} ctx := context.TODO() @@ -202,7 +202,7 @@ func (suite *ControllerTestSuite) TestUpdate() { func (suite *ControllerTestSuite) TestList() { projectMgr := &project.Manager{} rbacMgr := &rbac.Manager{} - robotMgr := &robot2.Manager{} + robotMgr := &robot.Manager{} c := controller{robotMgr: robotMgr, rbacMgr: rbacMgr, proMgr: projectMgr} ctx := context.TODO() @@ -251,7 +251,7 @@ func (suite *ControllerTestSuite) TestList() { func (suite *ControllerTestSuite) TestToScope() { projectMgr := &project.Manager{} rbacMgr := &rbac.Manager{} - robotMgr := &robot2.Manager{} + robotMgr := &robot.Manager{} c := controller{robotMgr: robotMgr, rbacMgr: rbacMgr, proMgr: projectMgr} ctx := context.TODO() diff --git a/src/controller/robot/model.go b/src/controller/robot/model.go index 209bc31b1..d506c8e2d 100644 --- a/src/controller/robot/model.go +++ b/src/controller/robot/model.go @@ -2,7 +2,7 @@ package robot import ( "github.com/goharbor/harbor/src/pkg/permission/types" - "github.com/goharbor/harbor/src/pkg/robot2/model" + "github.com/goharbor/harbor/src/pkg/robot/model" ) const ( diff --git a/src/controller/robot/model_test.go b/src/controller/robot/model_test.go index 8a4262b34..acf55758e 100644 --- a/src/controller/robot/model_test.go +++ b/src/controller/robot/model_test.go @@ -2,7 +2,7 @@ package robot import ( "github.com/goharbor/harbor/src/pkg/permission/types" - "github.com/goharbor/harbor/src/pkg/robot2/model" + "github.com/goharbor/harbor/src/pkg/robot/model" "github.com/stretchr/testify/suite" "testing" ) diff --git a/src/controller/scan/base_controller.go b/src/controller/scan/base_controller.go index 146f38e2d..4fd990e60 100644 --- a/src/controller/scan/base_controller.go +++ b/src/controller/scan/base_controller.go @@ -33,7 +33,7 @@ import ( "github.com/goharbor/harbor/src/lib/orm" "github.com/goharbor/harbor/src/lib/q" "github.com/goharbor/harbor/src/pkg/permission/types" - "github.com/goharbor/harbor/src/pkg/robot2/model" + "github.com/goharbor/harbor/src/pkg/robot/model" sca "github.com/goharbor/harbor/src/pkg/scan" "github.com/goharbor/harbor/src/pkg/scan/dao/scan" "github.com/goharbor/harbor/src/pkg/scan/dao/scanner" diff --git a/src/controller/scan/base_controller_test.go b/src/controller/scan/base_controller_test.go index f292f4729..f2c66732e 100644 --- a/src/controller/scan/base_controller_test.go +++ b/src/controller/scan/base_controller_test.go @@ -30,7 +30,7 @@ import ( "github.com/goharbor/harbor/src/lib/orm" "github.com/goharbor/harbor/src/lib/q" "github.com/goharbor/harbor/src/pkg/permission/types" - "github.com/goharbor/harbor/src/pkg/robot2/model" + "github.com/goharbor/harbor/src/pkg/robot/model" sca "github.com/goharbor/harbor/src/pkg/scan" "github.com/goharbor/harbor/src/pkg/scan/dao/scan" "github.com/goharbor/harbor/src/pkg/scan/dao/scanner" diff --git a/src/pkg/robot2/dao/dao.go b/src/pkg/robot/dao/dao.go similarity index 98% rename from src/pkg/robot2/dao/dao.go rename to src/pkg/robot/dao/dao.go index 7beab0458..5c351d1fb 100644 --- a/src/pkg/robot2/dao/dao.go +++ b/src/pkg/robot/dao/dao.go @@ -5,7 +5,7 @@ import ( "github.com/goharbor/harbor/src/lib/errors" "github.com/goharbor/harbor/src/lib/orm" "github.com/goharbor/harbor/src/lib/q" - "github.com/goharbor/harbor/src/pkg/robot2/model" + "github.com/goharbor/harbor/src/pkg/robot/model" "time" ) diff --git a/src/pkg/robot2/dao/dao_test.go b/src/pkg/robot/dao/dao_test.go similarity index 88% rename from src/pkg/robot2/dao/dao_test.go rename to src/pkg/robot/dao/dao_test.go index 4abdd0097..8bc37d1c3 100644 --- a/src/pkg/robot2/dao/dao_test.go +++ b/src/pkg/robot/dao/dao_test.go @@ -4,7 +4,7 @@ import ( "github.com/goharbor/harbor/src/lib/errors" "github.com/goharbor/harbor/src/lib/orm" "github.com/goharbor/harbor/src/lib/q" - "github.com/goharbor/harbor/src/pkg/robot2/model" + "github.com/goharbor/harbor/src/pkg/robot/model" htesting "github.com/goharbor/harbor/src/testing" "github.com/stretchr/testify/suite" "testing" @@ -91,6 +91,23 @@ func (suite *DaoTestSuite) TestList() { }) suite.Require().Nil(err) suite.Equal(suite.robotID3, robots[0].ID) + + r := &model.Robot{ + Name: "testvisible", + Description: "test visible", + ProjectID: 998, + Visible: false, + Secret: suite.RandString(10), + } + _, err = suite.dao.Create(orm.Context(), r) + suite.Nil(err) + robots, err = suite.dao.List(orm.Context(), &q.Query{ + Keywords: map[string]interface{}{ + "name": "testvisible", + "visible": true, + }, + }) + suite.Equal(len(robots), 0) } func (suite *DaoTestSuite) TestGet() { diff --git a/src/pkg/robot2/manager.go b/src/pkg/robot/manager.go similarity index 94% rename from src/pkg/robot2/manager.go rename to src/pkg/robot/manager.go index a45aaeec0..2cd95fba1 100644 --- a/src/pkg/robot2/manager.go +++ b/src/pkg/robot/manager.go @@ -1,10 +1,10 @@ -package robot2 +package robot import ( "context" "github.com/goharbor/harbor/src/lib/q" - "github.com/goharbor/harbor/src/pkg/robot2/dao" - "github.com/goharbor/harbor/src/pkg/robot2/model" + "github.com/goharbor/harbor/src/pkg/robot/dao" + "github.com/goharbor/harbor/src/pkg/robot/model" ) var ( diff --git a/src/pkg/robot2/manager_test.go b/src/pkg/robot/manager_test.go similarity index 93% rename from src/pkg/robot2/manager_test.go rename to src/pkg/robot/manager_test.go index ac7ce2758..f873248c6 100644 --- a/src/pkg/robot2/manager_test.go +++ b/src/pkg/robot/manager_test.go @@ -1,10 +1,10 @@ -package robot2 +package robot import ( "context" - "github.com/goharbor/harbor/src/pkg/robot2/model" + "github.com/goharbor/harbor/src/pkg/robot/model" "github.com/goharbor/harbor/src/testing/mock" - "github.com/goharbor/harbor/src/testing/pkg/robot2/dao" + "github.com/goharbor/harbor/src/testing/pkg/robot/dao" "github.com/stretchr/testify/suite" "testing" ) diff --git a/src/pkg/robot2/model/model.go b/src/pkg/robot/model/model.go similarity index 100% rename from src/pkg/robot2/model/model.go rename to src/pkg/robot/model/model.go diff --git a/src/pkg/scan/job.go b/src/pkg/scan/job.go index 61f006a8a..b17ff49e8 100644 --- a/src/pkg/scan/job.go +++ b/src/pkg/scan/job.go @@ -33,7 +33,7 @@ import ( "github.com/goharbor/harbor/src/jobservice/job" "github.com/goharbor/harbor/src/jobservice/logger" "github.com/goharbor/harbor/src/lib/errors" - "github.com/goharbor/harbor/src/pkg/robot2/model" + "github.com/goharbor/harbor/src/pkg/robot/model" "github.com/goharbor/harbor/src/pkg/scan/dao/scanner" "github.com/goharbor/harbor/src/pkg/scan/report" v1 "github.com/goharbor/harbor/src/pkg/scan/rest/v1" diff --git a/src/pkg/scan/job_test.go b/src/pkg/scan/job_test.go index 4113b419c..063f4eac1 100644 --- a/src/pkg/scan/job_test.go +++ b/src/pkg/scan/job_test.go @@ -17,7 +17,7 @@ package scan import ( "encoding/json" "github.com/goharbor/harbor/src/controller/robot" - "github.com/goharbor/harbor/src/pkg/robot2/model" + "github.com/goharbor/harbor/src/pkg/robot/model" "testing" "time" diff --git a/src/server/middleware/security/robot2.go b/src/server/middleware/security/robot2.go index 0d4fe01ac..1a1faa366 100644 --- a/src/server/middleware/security/robot2.go +++ b/src/server/middleware/security/robot2.go @@ -13,7 +13,7 @@ import ( "strings" "time" - "github.com/goharbor/harbor/src/pkg/robot2/model" + "github.com/goharbor/harbor/src/pkg/robot/model" "net/http" ) diff --git a/src/server/v2.0/handler/project.go b/src/server/v2.0/handler/project.go index 0a1a87e67..145bea22a 100644 --- a/src/server/v2.0/handler/project.go +++ b/src/server/v2.0/handler/project.go @@ -29,7 +29,7 @@ import ( "github.com/goharbor/harbor/src/pkg/project/metadata" "github.com/goharbor/harbor/src/pkg/quota/types" "github.com/goharbor/harbor/src/pkg/retention/policy" - "github.com/goharbor/harbor/src/pkg/robot2" + "github.com/goharbor/harbor/src/pkg/robot" "github.com/goharbor/harbor/src/pkg/user" "github.com/goharbor/harbor/src/replication" "github.com/goharbor/harbor/src/server/v2.0/handler/model" @@ -48,7 +48,7 @@ func newProjectAPI() *projectAPI { repositoryCtl: repository.Ctl, projectCtl: project.Ctl, quotaCtl: quota.Ctl, - robotMgr: robot2.Mgr, + robotMgr: robot.Mgr, preheatCtl: preheat.Ctl, } } @@ -61,7 +61,7 @@ type projectAPI struct { repositoryCtl repository.Controller projectCtl project.Controller quotaCtl quota.Controller - robotMgr robot2.Manager + robotMgr robot.Manager preheatCtl preheat.Controller } diff --git a/src/server/v2.0/handler/robot.go b/src/server/v2.0/handler/robot.go index fc24201ac..2d98b0602 100644 --- a/src/server/v2.0/handler/robot.go +++ b/src/server/v2.0/handler/robot.go @@ -11,7 +11,7 @@ import ( "github.com/goharbor/harbor/src/core/config" "github.com/goharbor/harbor/src/lib" "github.com/goharbor/harbor/src/lib/errors" - pkg "github.com/goharbor/harbor/src/pkg/robot2/model" + pkg "github.com/goharbor/harbor/src/pkg/robot/model" "github.com/goharbor/harbor/src/server/v2.0/handler/model" "github.com/goharbor/harbor/src/server/v2.0/models" operation "github.com/goharbor/harbor/src/server/v2.0/restapi/operations/robot" @@ -49,6 +49,7 @@ func (rAPI *robotAPI) CreateRobot(ctx context.Context, params operation.CreateRo Name: params.Robot.Name, Description: params.Robot.Description, Duration: params.Robot.Duration, + Visible: true, }, Level: params.Robot.Level, } @@ -133,6 +134,7 @@ func (rAPI *robotAPI) ListRobot(ctx context.Context, params operation.ListRobotP level = robot.LEVELSYSTEM query.Keywords["ProjectID"] = 0 } + query.Keywords["Visible"] = true if err := rAPI.requireAccess(ctx, level, projectID, rbac.ActionList); err != nil { return rAPI.SendError(ctx, err) diff --git a/src/server/v2.0/handler/robotV1.go b/src/server/v2.0/handler/robotV1.go index 545d6be29..f6ead8e4f 100644 --- a/src/server/v2.0/handler/robotV1.go +++ b/src/server/v2.0/handler/robotV1.go @@ -17,8 +17,8 @@ import ( "github.com/goharbor/harbor/src/lib/log" "github.com/goharbor/harbor/src/lib/q" "github.com/goharbor/harbor/src/pkg/permission/types" - pkg_robot "github.com/goharbor/harbor/src/pkg/robot2" - pkg "github.com/goharbor/harbor/src/pkg/robot2/model" + pkg_robot "github.com/goharbor/harbor/src/pkg/robot" + pkg "github.com/goharbor/harbor/src/pkg/robot/model" handler_model "github.com/goharbor/harbor/src/server/v2.0/handler/model" "github.com/goharbor/harbor/src/server/v2.0/models" operation "github.com/goharbor/harbor/src/server/v2.0/restapi/operations/robotv1" @@ -54,6 +54,7 @@ func (rAPI *robotV1API) CreateRobotV1(ctx context.Context, params operation.Crea Name: params.Robot.Name, Description: params.Robot.Description, ExpiresAt: params.Robot.ExpiresAt, + Visible: true, }, Level: robot.LEVELPROJECT, } @@ -145,6 +146,7 @@ func (rAPI *robotV1API) ListRobotV1(ctx context.Context, params operation.ListRo if err != nil { return rAPI.SendError(ctx, err) } + query.Keywords["Visible"] = true pro, err := rAPI.projectCtr.Get(ctx, projectNameOrID) if err != nil { diff --git a/src/testing/pkg/pkg.go b/src/testing/pkg/pkg.go index 397eddd52..ae5426629 100644 --- a/src/testing/pkg/pkg.go +++ b/src/testing/pkg/pkg.go @@ -30,5 +30,5 @@ package pkg //go:generate mockery --case snake --dir ../../pkg/user --name Manager --output ./user --outpkg user //go:generate mockery --case snake --dir ../../pkg/rbac --name Manager --output ./rbac --outpkg rbac //go:generate mockery --case snake --dir ../../pkg/rbac/dao --name DAO --output ./rbac/dao --outpkg dao -//go:generate mockery --case snake --dir ../../pkg/robot2 --name Manager --output ./robot2 --outpkg robot2 -//go:generate mockery --case snake --dir ../../pkg/robot2/dao --name DAO --output ./robot2/dao --outpkg dao +//go:generate mockery --case snake --dir ../../pkg/robot --name Manager --output ./robot --outpkg robot +//go:generate mockery --case snake --dir ../../pkg/robot/dao --name DAO --output ./robot/dao --outpkg dao diff --git a/src/testing/pkg/robot2/dao/dao.go b/src/testing/pkg/robot/dao/dao.go similarity index 98% rename from src/testing/pkg/robot2/dao/dao.go rename to src/testing/pkg/robot/dao/dao.go index b3b46d3ab..7376fd006 100644 --- a/src/testing/pkg/robot2/dao/dao.go +++ b/src/testing/pkg/robot/dao/dao.go @@ -7,7 +7,7 @@ import ( mock "github.com/stretchr/testify/mock" - model "github.com/goharbor/harbor/src/pkg/robot2/model" + model "github.com/goharbor/harbor/src/pkg/robot/model" q "github.com/goharbor/harbor/src/lib/q" ) diff --git a/src/testing/pkg/robot2/manager.go b/src/testing/pkg/robot/manager.go similarity index 97% rename from src/testing/pkg/robot2/manager.go rename to src/testing/pkg/robot/manager.go index 5f6c17c7a..fed171a25 100644 --- a/src/testing/pkg/robot2/manager.go +++ b/src/testing/pkg/robot/manager.go @@ -1,11 +1,11 @@ // Code generated by mockery v2.1.0. DO NOT EDIT. -package robot2 +package robot import ( context "context" - model "github.com/goharbor/harbor/src/pkg/robot2/model" + model "github.com/goharbor/harbor/src/pkg/robot/model" mock "github.com/stretchr/testify/mock" q "github.com/goharbor/harbor/src/lib/q"