From 06b1eae44bc00f83045e4a8ef76294a98a58d6aa Mon Sep 17 00:00:00 2001 From: GoEdgeLab Date: Sun, 23 May 2021 21:13:20 +0800 Subject: [PATCH] =?UTF-8?q?SSH=E8=AE=A4=E8=AF=81=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E5=8F=AF=E4=BB=A5=E4=BD=BF=E7=94=A8=E5=85=B3=E9=94=AE=E8=AF=8D?= =?UTF-8?q?=E6=90=9C=E7=B4=A2=EF=BC=8C=E8=BF=94=E5=9B=9E=E5=86=85=E5=AE=B9?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=94=A8=E6=88=B7=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/db/models/node_grant_dao.go | 41 +++++++++++++-------- internal/rpc/services/service_node_grant.go | 6 ++- 2 files changed, 29 insertions(+), 18 deletions(-) diff --git a/internal/db/models/node_grant_dao.go b/internal/db/models/node_grant_dao.go index 0dba7013..5d8ec3ed 100644 --- a/internal/db/models/node_grant_dao.go +++ b/internal/db/models/node_grant_dao.go @@ -34,7 +34,7 @@ func init() { }) } -// 启用条目 +// EnableNodeGrant 启用条目 func (this *NodeGrantDAO) EnableNodeGrant(tx *dbs.Tx, id uint32) (rowsAffected int64, err error) { return this.Query(tx). Pk(id). @@ -42,7 +42,7 @@ func (this *NodeGrantDAO) EnableNodeGrant(tx *dbs.Tx, id uint32) (rowsAffected i Update() } -// 禁用条目 +// DisableNodeGrant 禁用条目 func (this *NodeGrantDAO) DisableNodeGrant(tx *dbs.Tx, id int64) (err error) { _, err = this.Query(tx). Pk(id). @@ -51,7 +51,7 @@ func (this *NodeGrantDAO) DisableNodeGrant(tx *dbs.Tx, id int64) (err error) { return err } -// 查找启用中的条目 +// FindEnabledNodeGrant 查找启用中的条目 func (this *NodeGrantDAO) FindEnabledNodeGrant(tx *dbs.Tx, id int64) (*NodeGrant, error) { result, err := this.Query(tx). Pk(id). @@ -63,7 +63,7 @@ func (this *NodeGrantDAO) FindEnabledNodeGrant(tx *dbs.Tx, id int64) (*NodeGrant return result.(*NodeGrant), err } -// 根据主键查找名称 +// FindNodeGrantName 根据主键查找名称 func (this *NodeGrantDAO) FindNodeGrantName(tx *dbs.Tx, id uint32) (string, error) { name, err := this.Query(tx). Pk(id). @@ -72,7 +72,7 @@ func (this *NodeGrantDAO) FindNodeGrantName(tx *dbs.Tx, id uint32) (string, erro return name.(string), err } -// 创建认证信息 +// CreateGrant 创建认证信息 func (this *NodeGrantDAO) CreateGrant(tx *dbs.Tx, adminId int64, name string, method string, username string, password string, privateKey string, description string, nodeId int64) (grantId int64, err error) { op := NewNodeGrantOperator() op.AdminId = adminId @@ -94,7 +94,7 @@ func (this *NodeGrantDAO) CreateGrant(tx *dbs.Tx, adminId int64, name string, me return types.Int64(op.Id), err } -// 修改认证信息 +// UpdateGrant 修改认证信息 func (this *NodeGrantDAO) UpdateGrant(tx *dbs.Tx, grantId int64, name string, method string, username string, password string, privateKey string, description string, nodeId int64) error { if grantId <= 0 { return errors.New("invalid grantId") @@ -119,17 +119,26 @@ func (this *NodeGrantDAO) UpdateGrant(tx *dbs.Tx, grantId int64, name string, me return err } -// 计算所有认证信息数量 -func (this *NodeGrantDAO) CountAllEnabledGrants(tx *dbs.Tx) (int64, error) { - return this.Query(tx). - State(NodeGrantStateEnabled). - Count() +// CountAllEnabledGrants 计算所有认证信息数量 +func (this *NodeGrantDAO) CountAllEnabledGrants(tx *dbs.Tx, keyword string) (int64, error) { + query := this.Query(tx). + State(NodeGrantStateEnabled) + if len(keyword) > 0 { + query.Where("(name LIKE :keyword OR username LIKE :keyword OR description LIKE :keyword)"). + Param("keyword", "%"+keyword+"%") + } + return query.Count() } -// 列出单页的认证信息 -func (this *NodeGrantDAO) ListEnabledGrants(tx *dbs.Tx, offset int64, size int64) (result []*NodeGrant, err error) { - _, err = this.Query(tx). - State(NodeGrantStateEnabled). +// ListEnabledGrants 列出单页的认证信息 +func (this *NodeGrantDAO) ListEnabledGrants(tx *dbs.Tx, keyword string, offset int64, size int64) (result []*NodeGrant, err error) { + query := this.Query(tx). + State(NodeGrantStateEnabled) + if len(keyword) > 0 { + query.Where("(name LIKE :keyword OR username LIKE :keyword OR description LIKE :keyword)"). + Param("keyword", "%"+keyword+"%") + } + _, err = query. Offset(offset). Size(size). DescPk(). @@ -138,7 +147,7 @@ func (this *NodeGrantDAO) ListEnabledGrants(tx *dbs.Tx, offset int64, size int64 return } -// 列出所有的认证信息 +// FindAllEnabledGrants 列出所有的认证信息 func (this *NodeGrantDAO) FindAllEnabledGrants(tx *dbs.Tx) (result []*NodeGrant, err error) { _, err = this.Query(tx). State(NodeGrantStateEnabled). diff --git a/internal/rpc/services/service_node_grant.go b/internal/rpc/services/service_node_grant.go index 97b82a91..de6bbd54 100644 --- a/internal/rpc/services/service_node_grant.go +++ b/internal/rpc/services/service_node_grant.go @@ -73,7 +73,7 @@ func (this *NodeGrantService) CountAllEnabledNodeGrants(ctx context.Context, req tx := this.NullTx() - count, err := models.SharedNodeGrantDAO.CountAllEnabledGrants(tx) + count, err := models.SharedNodeGrantDAO.CountAllEnabledGrants(tx, req.Keyword) if err != nil { return nil, err } @@ -89,7 +89,7 @@ func (this *NodeGrantService) ListEnabledNodeGrants(ctx context.Context, req *pb tx := this.NullTx() - grants, err := models.SharedNodeGrantDAO.ListEnabledGrants(tx, req.Offset, req.Size) + grants, err := models.SharedNodeGrantDAO.ListEnabledGrants(tx, req.Keyword, req.Offset, req.Size) if err != nil { return nil, err } @@ -99,6 +99,7 @@ func (this *NodeGrantService) ListEnabledNodeGrants(ctx context.Context, req *pb Id: int64(grant.Id), Name: grant.Name, Method: grant.Method, + Username: grant.Username, Password: grant.Password, Su: grant.Su == 1, PrivateKey: grant.PrivateKey, @@ -126,6 +127,7 @@ func (this *NodeGrantService) FindAllEnabledNodeGrants(ctx context.Context, req Id: int64(grant.Id), Name: grant.Name, Method: grant.Method, + Username: grant.Username, Password: grant.Password, Su: grant.Su == 1, PrivateKey: grant.PrivateKey,