fix: (rbac) role
This commit is contained in:
parent
3bb04e4ab1
commit
eeb1953837
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
|
@ -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")
|
||||||
|
|
Loading…
Reference in New Issue