Skip to content

Commit 0cf29d7

Browse files
author
奇淼(piexlmax
authored
Merge pull request #472 from closetool/develop
service/sys_casbin.go: fix casbin runs slowly
2 parents bffe222 + c756d26 commit 0cf29d7

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

server/service/sys_casbin.go

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"gin-vue-admin/model"
77
"gin-vue-admin/model/request"
88
"strings"
9+
"sync"
910

1011
"github.com/casbin/casbin/v2"
1112
"github.com/casbin/casbin/v2/util"
@@ -89,11 +90,18 @@ func ClearCasbin(v int, p ...string) bool {
8990
//@description: 持久化到数据库 引入自定义规则
9091
//@return: *casbin.Enforcer
9192

93+
var (
94+
e *casbin.Enforcer
95+
once sync.Once
96+
)
97+
9298
func Casbin() *casbin.Enforcer {
93-
admin := global.GVA_CONFIG.Mysql
94-
a, _ := gormadapter.NewAdapter(global.GVA_CONFIG.System.DbType, admin.Username+":"+admin.Password+"@("+admin.Path+")/"+admin.Dbname, true)
95-
e, _ := casbin.NewEnforcer(global.GVA_CONFIG.Casbin.ModelPath, a)
96-
e.AddFunction("ParamsMatch", ParamsMatchFunc)
99+
once.Do(func() {
100+
admin := global.GVA_CONFIG.Mysql
101+
a, _ := gormadapter.NewAdapter(global.GVA_CONFIG.System.DbType, admin.Username+":"+admin.Password+"@("+admin.Path+")/"+admin.Dbname, true)
102+
e, _ = casbin.NewEnforcer(global.GVA_CONFIG.Casbin.ModelPath, a)
103+
e.AddFunction("ParamsMatch", ParamsMatchFunc)
104+
})
97105
_ = e.LoadPolicy()
98106
return e
99107
}

0 commit comments

Comments
 (0)