From b9d7145049a77ffddb1e7fef834563e851118477 Mon Sep 17 00:00:00 2001 From: PowderLi <135960789+PowderLi@users.noreply.github.com> Date: Thu, 23 May 2024 09:51:45 +0800 Subject: [PATCH] fix: [restful v2]role operations need dbName (#33283) issue: #33220 use dbName as part of privilege entity, so 1. grant / revoke a privilege need dbName 2. we can describe the privileges of the role which belong to one special database Signed-off-by: PowderLi --- internal/distributed/proxy/httpserver/handler_v2.go | 2 +- internal/distributed/proxy/httpserver/request_v2.go | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/internal/distributed/proxy/httpserver/handler_v2.go b/internal/distributed/proxy/httpserver/handler_v2.go index 2badb5957d..ba97bc5fa4 100644 --- a/internal/distributed/proxy/httpserver/handler_v2.go +++ b/internal/distributed/proxy/httpserver/handler_v2.go @@ -1514,7 +1514,7 @@ func (h *HandlersV2) listRoles(ctx context.Context, c *gin.Context, anyReq any, func (h *HandlersV2) describeRole(ctx context.Context, c *gin.Context, anyReq any, dbName string) (interface{}, error) { getter, _ := anyReq.(RoleNameGetter) req := &milvuspb.SelectGrantRequest{ - Entity: &milvuspb.GrantEntity{Role: &milvuspb.RoleEntity{Name: getter.GetRoleName()}}, + Entity: &milvuspb.GrantEntity{Role: &milvuspb.RoleEntity{Name: getter.GetRoleName()}, DbName: dbName}, } resp, err := wrapperProxy(ctx, c, req, h.checkAuth, false, func(reqCtx context.Context, req any) (interface{}, error) { return h.proxy.SelectGrant(reqCtx, req.(*milvuspb.SelectGrantRequest)) diff --git a/internal/distributed/proxy/httpserver/request_v2.go b/internal/distributed/proxy/httpserver/request_v2.go index aa32cfcb6c..01ecf51160 100644 --- a/internal/distributed/proxy/httpserver/request_v2.go +++ b/internal/distributed/proxy/httpserver/request_v2.go @@ -248,9 +248,12 @@ type UserRoleReq struct { } type RoleReq struct { + DbName string `json:"dbName"` RoleName string `json:"roleName" binding:"required"` } +func (req *RoleReq) GetDbName() string { return req.DbName } + func (req *RoleReq) GetRoleName() string { return req.RoleName } @@ -263,6 +266,8 @@ type GrantReq struct { DbName string `json:"dbName"` } +func (req *GrantReq) GetDbName() string { return req.DbName } + type IndexParam struct { FieldName string `json:"fieldName" binding:"required"` IndexName string `json:"indexName" binding:"required"`