From 202a8838a4d0edbfcd608ca20dcc7a2ca424efd1 Mon Sep 17 00:00:00 2001 From: GoEdgeLab Date: Fri, 27 Nov 2020 10:02:46 +0800 Subject: [PATCH] =?UTF-8?q?[SSH=E8=AE=A4=E8=AF=81]=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E5=88=9B=E5=BB=BA=E7=9A=84=E7=AE=A1=E7=90=86=E5=91=98ID?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/db/models/node_grant_dao.go | 3 ++- internal/db/models/node_grant_model.go | 2 ++ internal/rpc/services/service_node_grant.go | 4 ++-- internal/setup/sql_data.go | 6 ++++++ 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/internal/db/models/node_grant_dao.go b/internal/db/models/node_grant_dao.go index 6f13a68a..f0c04a82 100644 --- a/internal/db/models/node_grant_dao.go +++ b/internal/db/models/node_grant_dao.go @@ -73,8 +73,9 @@ func (this *NodeGrantDAO) FindNodeGrantName(id uint32) (string, error) { } // 创建认证信息 -func (this *NodeGrantDAO) CreateGrant(name string, method string, username string, password string, privateKey string, description string, nodeId int64) (grantId int64, err error) { +func (this *NodeGrantDAO) CreateGrant(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 op.Name = name op.Method = method diff --git a/internal/db/models/node_grant_model.go b/internal/db/models/node_grant_model.go index 5d3d31ec..5bf92a53 100644 --- a/internal/db/models/node_grant_model.go +++ b/internal/db/models/node_grant_model.go @@ -3,6 +3,7 @@ package models // 节点授权 type NodeGrant struct { Id uint32 `field:"id"` // ID + AdminId uint32 `field:"adminId"` // 管理员ID Name string `field:"name"` // 名称 Method string `field:"method"` // 登录方式 Username string `field:"username"` // 用户名 @@ -17,6 +18,7 @@ type NodeGrant struct { type NodeGrantOperator struct { Id interface{} // ID + AdminId interface{} // 管理员ID Name interface{} // 名称 Method interface{} // 登录方式 Username interface{} // 用户名 diff --git a/internal/rpc/services/service_node_grant.go b/internal/rpc/services/service_node_grant.go index 7f671fbb..52e387bc 100644 --- a/internal/rpc/services/service_node_grant.go +++ b/internal/rpc/services/service_node_grant.go @@ -13,12 +13,12 @@ type NodeGrantService struct { } func (this *NodeGrantService) CreateNodeGrant(ctx context.Context, req *pb.CreateNodeGrantRequest) (*pb.CreateNodeGrantResponse, error) { - _, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin) + adminId, err := this.ValidateAdmin(ctx, 0) if err != nil { return nil, err } - grantId, err := models.SharedNodeGrantDAO.CreateGrant(req.Name, req.Method, req.Username, req.Password, req.PrivateKey, req.Description, req.NodeId) + grantId, err := models.SharedNodeGrantDAO.CreateGrant(adminId, req.Name, req.Method, req.Username, req.Password, req.PrivateKey, req.Description, req.NodeId) if err != nil { return nil, err } diff --git a/internal/setup/sql_data.go b/internal/setup/sql_data.go index 50a1a430..e0e10165 100644 --- a/internal/setup/sql_data.go +++ b/internal/setup/sql_data.go @@ -81,5 +81,11 @@ func upgradeV0_0_3(db *dbs.DB) error { return err } + // 升级edgeNodeGrants + _, err = db.Exec("UPDATE edgeNodeGrants SET adminId=? WHERE adminId=0", adminId) + if err != nil { + return err + } + return nil }