console/plugin/api/rbac/init.go

53 lines
1.1 KiB
Go

package rbac
import (
"encoding/json"
"infini.sh/console/plugin/api/rbac/biz"
"infini.sh/framework/core/api"
"infini.sh/framework/core/util"
"os"
"path"
)
type Rbac struct {
api.Handler
}
func registerRouter() {
r := Rbac{}
api.HandleAPIMethod(api.GET, "/permission/:type", r.ListPermission)
api.HandleAPIMethod(api.POST, "/role", r.CreateRole)
api.HandleAPIMethod(api.GET, "/role/:id", r.GetRole)
api.HandleAPIMethod(api.DELETE, "/role/:id", r.DeleteRole)
api.HandleAPIMethod(api.PUT, "/role/:id", r.UpdateRole)
api.HandleAPIMethod(api.GET, "/roles", r.ListRole)
}
//TODO 权限一级配置全局变量,
func loadJsonConfig() {
pwd, _ := os.Getwd()
bytes, err := util.FileGetContent(path.Join(pwd, "/config/permission.json"))
if err != nil {
panic("load json file err " + err.Error())
}
err = json.Unmarshal(bytes, &biz.EsApis)
if err != nil {
panic("json config unmarshal err " + err.Error())
}
list := make([]string, 0)
list = append(list, "*")
for k := range biz.EsApis {
list = append(list, k)
}
biz.ClusterApis = list
}
func init() {
registerRouter()
loadJsonConfig()
}