fix: (rbac) role

This commit is contained in:
xushuhui 2022-04-24 12:23:47 +08:00
parent 3bb04e4ab1
commit eeb1953837
2 changed files with 18 additions and 11 deletions

View File

@ -97,19 +97,20 @@ func authorize(user Account) (m map[string]interface{}, err error) {
if err != nil { if err != nil {
return return
} }
var roles []string var roles, privilege []string
for _, v := range user.Roles { for _, v := range user.Roles {
roles = append(roles, v.Name) roles = append(roles, v.Name)
r, _ := GetRole(v.Id)
privilege = append(privilege, r.Platform...)
} }
m = util.MapStr{ m = util.MapStr{
"access_token": tokenString, "access_token": tokenString,
"username": user.Username, "username": user.Username,
"id": user.ID, "id": user.ID,
"expire_in": 86400, "expire_in": 86400,
"roles": roles, "roles": roles,
"privilege": []string{ "privilege": privilege,
"system.user:all", "system.role:all", "system.cluster:all", "system.command:all",
},
} }
return return
} }

View File

@ -31,7 +31,13 @@ func NewEsContext(ctx context.Context, role EsRole) {
//get user es role //get user es role
} }
func ValidateEsPermission(req, userRole EsRole) (err error) {
type EsRequest struct {
Cluster []string `json:"cluster"`
Index []string `json:"index"`
}
func ValidateEsPermission(req EsRequest, userRole EsRole) (err error) {
userClusterMap := make(map[string]struct{}) userClusterMap := make(map[string]struct{})
userIndexMap := make(map[string]struct{}) userIndexMap := make(map[string]struct{})
for _, v := range userRole.Cluster { for _, v := range userRole.Cluster {
@ -43,12 +49,12 @@ func ValidateEsPermission(req, userRole EsRole) (err error) {
} }
} }
//for _, v := range req.Cluster { for _, v := range req.Cluster {
// if _, ok := userClusterMap[v]; !ok { if _, ok := userClusterMap[v]; !ok {
// err = errors.New("no cluster permission") err = errors.New("no cluster permission")
// return return
// } }
//} }
//for _, v := range req.Index { //for _, v := range req.Index {
// if _, ok := userClusterMap[v]; !ok { // if _, ok := userClusterMap[v]; !ok {
// err = errors.New("no index permission") // err = errors.New("no index permission")