Browse Source

Merge branch 'develop' of https://github.com/flipped-aurora/gin-vue-admin into gva_gormv2_dev

 Conflicts:
	server/service/sys_casbin.go
pixel 3 years ago
parent
commit
31dfb94350
1 changed files with 11 additions and 3 deletions
  1. 11 3
      server/service/sys_casbin.go

+ 11 - 3
server/service/sys_casbin.go

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