Browse Source

service/sys_casbin.go: fix casbin runs slowly

main
closetool 4 years ago
parent
commit
66315830ef
  1. 10
      server/service/sys_casbin.go

10
server/service/sys_casbin.go

@ -6,6 +6,7 @@ import (
"gin-vue-admin/model" "gin-vue-admin/model"
"gin-vue-admin/model/request" "gin-vue-admin/model/request"
"strings" "strings"
"sync"
"github.com/casbin/casbin/v2" "github.com/casbin/casbin/v2"
"github.com/casbin/casbin/v2/util" "github.com/casbin/casbin/v2/util"
@ -89,11 +90,18 @@ func ClearCasbin(v int, p ...string) bool {
//@description: 持久化到数据库 引入自定义规则 //@description: 持久化到数据库 引入自定义规则
//@return: *casbin.Enforcer //@return: *casbin.Enforcer
var (
e *casbin.Enforcer
once sync.Once
)
func Casbin() *casbin.Enforcer { func Casbin() *casbin.Enforcer {
once.Do(func() {
admin := global.GVA_CONFIG.Mysql admin := global.GVA_CONFIG.Mysql
a, _ := gormadapter.NewAdapter(global.GVA_CONFIG.System.DbType, admin.Username+":"+admin.Password+"@("+admin.Path+")/"+admin.Dbname, true) a, _ := gormadapter.NewAdapter(global.GVA_CONFIG.System.DbType, admin.Username+":"+admin.Password+"@("+admin.Path+")/"+admin.Dbname, true)
e, _ := casbin.NewEnforcer(global.GVA_CONFIG.Casbin.ModelPath, a)
e, _ = casbin.NewEnforcer(global.GVA_CONFIG.Casbin.ModelPath, a)
e.AddFunction("ParamsMatch", ParamsMatchFunc) e.AddFunction("ParamsMatch", ParamsMatchFunc)
})
_ = e.LoadPolicy() _ = e.LoadPolicy()
return e return e
} }

Loading…
Cancel
Save