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 {
return
}
var roles []string
var roles, privilege []string
for _, v := range user.Roles {
roles = append(roles, v.Name)
r, _ := GetRole(v.Id)
privilege = append(privilege, r.Platform...)
}
m = util.MapStr{
"access_token": tokenString,
"username": user.Username,
"id": user.ID,
"expire_in": 86400,
"roles": roles,
"privilege": []string{
"system.user:all", "system.role:all", "system.cluster:all", "system.command:all",
},
"privilege": privilege,
}
return
}

View File

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